date时间等于或大于今天在MySQL中

什么是最好的方法来做到以下几点:

SELECT * FROM users WHERE created >= today; 

注意:创build的是date时间字段。

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

但我认为你的意思created < today

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

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

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

如果该列是date时间types。

如果“创build”是date时间types

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

CURDATE()也意味着'2013-05-09 00:00:00'

 SELECT * FROM users WHERE created >= now() 

下面的代码为我工作。

 declare @Today date Set @Today=getdate() --date will equal today Select * FROM table_name WHERE created <= @Today 

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

要使用索引和比较datetime和当前date,可以使用以下内容。

 select * from users where created >= CONCAT(CURDATE(), ' 00:00:00') && created < CONCAT(CURDATE(), ' 23:59:59') 
 SELECT * FROM table_name WHERE CONCAT( SUBSTRING(json_date, 11, 4 ) , '-', SUBSTRING( json_date, 7, 2 ) , '-', SUBSTRING(json_date, 3, 2 ) ) >= NOW(); 

json_date [“05/11/2011”]

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

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