MySQL中的日期时间等于或大于今天

时间:2011-03-03 14:49:51

标签: mysql sql datetime

最好的方法是:

SELECT * FROM users WHERE created >= today;

注意:created是一个日期时间字段。

10 个答案:

答案 0 :(得分:280)

SELECT * FROM users WHERE created >= CURDATE();

但我认为你的意思是created < today

答案 1 :(得分:69)

SELECT * FROM myTable WHERE  DATE(myDate) = DATE(NOW())

了解更多:  http://www.tomjepson.co.uk/tutorials/36/mysql-select-where-date-today.html

答案 2 :(得分:29)

SELECT * FROM users WHERE created >= NOW();

如果列是日期时间类型。

答案 3 :(得分:13)

如果'created'是日期时间类型

SELECT * FROM users WHERE created < DATE_ADD(CURDATE(), INTERVAL 1 DAY);

CURDATE()也表示'2013-05-09 00:00:00'

答案 4 :(得分:3)

SELECT * FROM users WHERE created >= now()

答案 5 :(得分:2)

如果列具有索引并且在列上应用了函数,则索引不起作用并且会发生全表扫描,从而导致查询速度非常慢。

要使用索引并将日期时间与今天/当前日期进行比较,可以使用以下内容。

jQuery(document).ready(function(){

  jQuery(document).on('click.button','button',function(e){
    var eq = $(this).index('button');
    e.preventDefault(); e.stopImmediatePropagation();
    if($('span').eq(eq+1).length) { $('span').eq(eq+1).show().text(eq+1); }
  });

});

答案 6 :(得分:2)

标记的答案具有误导性。所述问题为DateTime,但声明所需内容仅为CURDATE()

最短且正确的答案是:

SELECT * FROM users WHERE created >= CURRENT_TIMESTAMP;

答案 7 :(得分:0)

以下代码对我有用。

declare @Today date

Set @Today=getdate() --date will equal today    

Select *

FROM table_name
WHERE created <= @Today

答案 8 :(得分:-1)

SELECT * FROM table_name WHERE CONCAT( SUBSTRING(json_date, 11, 4 ) ,  '-', SUBSTRING( json_date, 7, 2 ) ,  '-', SUBSTRING(json_date, 3, 2 ) ) >= NOW();

json_date [&#34; 05/11/2011&#34;]

答案 9 :(得分:-4)

你可以返回所有行,而不是在if语句中使用php datediff函数,尽管这会给服务器带来额外的负担。

if(dateDiff(date("Y/m/d"), $row['date']) <=0 ){    
}else{    
echo " info here";    
}