开发者

MySQL - SELECT WHERE date < X

How do I do this in MySQL?

 SELECT * FROM MyTable WHERE MyDateCol < TODAY()

I googled a lot on the subject and didn't really find anything except "look in the MySQL 开发者_StackOverflow社区date ref" which does not explain the above easily enough.

I know I can do the following which is kinda indirect:

SELECT * FROM MyTable WHERE MyDateCol BETWEEN (0000-00-00) AND TODAY()


In MySQL, you have the curdate() funciton, that will get you the date of today.

So, something like this should do :

select *
from your_table
where your_date_column < curdate()


Quoting the manual's page of that function :

Returns the current date as a value in 'YYYY-MM-DD' or YYYYMMDD format, depending on whether the function is used in a string or numeric context.


And if you want to compare to the current time (and not only day), you can use the now() function :

Returns the current date and time as a value in 'YYYY-MM-DD HH:MM:SS' or YYYYMMDDHHMMSS.uuuuuu format


SELECT * FROM MyTable WHERE MyDateCol < CURDATE()


If MySQL supports SYSDATE, you should use that instead of NOW() or CURDATE(), since it's more standard.

SELECT * FROM MyTable WHERE MyDateCol < SYSDATE;


Use NOW() function:

SELECT * FROM MyTable WHERE MyDateCol < NOW()
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜