MySQL - ВЫБЕРИТЕ, ГДЕ дата <X - PullRequest
5 голосов
/ 25 января 2010

Как мне это сделать в MySQL?

 SELECT * FROM MyTable WHERE MyDateCol < TODAY()

Я много гуглил на эту тему и не нашел ничего, кроме "посмотрите в ссылке на MySQL", которая недостаточно легко объясняет вышесказанное.

Я знаю, что могу сделать что-то косвенное:

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

Ответы [ 4 ]

4 голосов
/ 25 января 2010

В MySQL у вас есть функция curdate(), которая сообщит вам сегодняшнюю дату.

Итак, что-то вроде этого должно сделать:

select *
from your_table
where your_date_column < curdate()


Цитирую страницу руководства по этой функции:

Возвращает текущую дату в виде значения в 'YYYY-MM-DD' или YYYYMMDD формат, в зависимости от того, является ли функция используется в строковом или числовом контексте.


И если вы хотите сравнить с текущим временем (и не только днем) , вы можете использовать функцию now():

Возвращает текущую дату и время в виде значение в 'YYYY-MM-DD HH:MM:SS' или YYYYMMDDHHMMSS.uuuuuu формат

2 голосов
/ 25 января 2010

Если MySQL поддерживает SYSDATE, вы должны использовать это вместо NOW () или CURDATE (), так как это более стандартно.

SELECT * FROM MyTable WHERE MyDateCol < SYSDATE;
2 голосов
/ 25 января 2010
SELECT * FROM MyTable WHERE MyDateCol < CURDATE()
1 голос
/ 25 января 2010

Использование NOW() Функция:

SELECT * FROM MyTable WHERE MyDateCol < NOW()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...