Как я делаю это в MySQL?
SELECT * FROM MyTable WHERE MyDateCol < TODAY()
Я погуглил много на предмете и действительно не нашел, что что-либо кроме "смотрит на дате MySQL касательно", который не объясняет вышеупомянутое достаточно легко.
Я знаю, что могу сделать следующее, которое является довольно косвенным:
SELECT * FROM MyTable WHERE MyDateCol BETWEEN (0000-00-00) AND TODAY()
В MySQL у вас есть Curdate () Curdate ()
Funciton, который принесет вам дату сегодня.
Итак, что-то вроде этого следует сделать:
select *
from your_table
where your_date_column < curdate()
цитируют страницу руководства этой функции:
возвращает текущую дату в качестве значения в
«ГГГГ-ММ-ДД»
илиформат Yyyymmdd
, в зависимости от того, является ли функция используется в строке или числовом контексте.
И если вы хотите сравнить с текущим временем (и не только день) , вы можете использовать функцию сейчас ()
:
возвращает текущую дату и время как Значение в
«ГГГГ-ММ-ДД HH: MM: SS»
илиYyyymmddhhmmmss.uuuuuuu
Формат
Если MySQL поддерживает SYSDATE, следует использовать его вместо NOW () или CURDATE (), поскольку он является более стандартным.
SELECT * FROM MyTable WHERE MyDateCol < SYSDATE;
SELECT * FROM MyTable WHERE MyDateCol < CURDATE()
можно использовать фильтр
. Используйте NOW()
функцию:
SELECT * FROM MyTable WHERE MyDateCol < NOW()