Выберите записи СЕЙЧАС () -1 день

139

Есть ли способ в операторе MySQL упорядочить записи (через отметку даты) с помощью> = NOW () -1, чтобы были выбраны все записи с предыдущего дня на будущее?

user1092780
источник

Ответы:

270

Судя по документации для функций даты / времени , вы должны уметь делать что-то вроде:

SELECT * FROM FOO
WHERE MY_DATE_FIELD >= NOW() - INTERVAL 1 DAY
Джон Скит
источник
как получить сейчас и так далее .. означает текущую дату для всех записей, доступных в db. ? это всего лишь на один день, но мне нужно, чтобы все записывались на словах. @jon
Муддасир Аббас
Учитывает ли он местное время пользователя, когда записи находятся в формате UTC?
Адри
1
@Adry: Я сомневаюсь в этом, но вы должны тщательно протестировать.
Джон Скит
63

Имейте в виду, что результат может немного отличаться от ожидаемого.

NOW()возвращает DATETIME.

И INTERVALработает как названо, например INTERVAL 1 DAY = 24 hours.

Поэтому, если ваш скрипт запускается в cron 03:00, он пропустит first three hours of records from the 'oldest' day.

Чтобы использовать весь день CURDATE() - INTERVAL 1 DAY. Это вернется к началу предыдущего дня независимо от того, когда скрипт запущен.

Уильям Дэн Терри
источник
Голосовать за CURDATE ()
ограбить
17

Вы почти у цели: это NOW() - INTERVAL 1 DAY

dasblinkenlight
источник
8

Что вы можете:

SELECT * FROM table
WHERE DateStamp > DATE_ADD(NOW(), INTERVAL -1 DAY)
Марко Мильтенбург
источник
Непонятно, используя DATE_ADDтогда -1 day.
Эндрю Аткинсон
8

Не видел правильных ответов, используя DATE_ADDили DATE_SUB:

Вычтите 1 день из NOW()

...WHERE DATE_FIELD >= DATE_SUB(NOW(), INTERVAL 1 DAY)

Добавить 1 день от NOW()

...WHERE DATE_FIELD >= DATE_ADD(NOW(), INTERVAL 1 DAY)
Эндрю Аткинсон
источник
1

когда поле поиска является отметкой времени и вы хотите найти записи с 0 часов вчера и 0 часов сегодня, используйте конструкцию

MY_DATE_TIME_FIELD between makedate(year(now()), date_format(now(),'%j')-1) and makedate(year(now()), date_format(now(),'%j'))  

вместо

 now() - interval 1 day
Майкл де Оз
источник