Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MySQL - SELECT WHERE date < X

Tags:

syntax

date

mysql

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 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()
like image 453
Robin Rodricks Avatar asked Jan 25 '10 12:01

Robin Rodricks


1 Answers

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

like image 195
Pascal MARTIN Avatar answered Sep 30 '22 20:09

Pascal MARTIN