开发者

MySQL - SELECT WHERE date < X

开发者 https://www.devze.com 2022-12-17 20:39 出处:网络
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社区dat

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

精彩评论

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