Есть ли способ в операторе MySQL упорядочить записи (через отметку даты) с помощью> = NOW () -1, чтобы были выбраны все записи с предыдущего дня на будущее?
139
Судя по документации для функций даты / времени , вы должны уметь делать что-то вроде:
SELECT * FROM FOO
WHERE MY_DATE_FIELD >= NOW() - INTERVAL 1 DAY
Имейте в виду, что результат может немного отличаться от ожидаемого.
NOW()
возвращаетDATETIME
.И
INTERVAL
работает как названо, напримерINTERVAL 1 DAY = 24 hours
.Поэтому, если ваш скрипт запускается в cron
03:00
, он пропуститfirst three hours of records from the 'oldest' day
.Чтобы использовать весь день
CURDATE() - INTERVAL 1 DAY
. Это вернется к началу предыдущего дня независимо от того, когда скрипт запущен.источник
Вы почти у цели: это
NOW() - INTERVAL 1 DAY
источник
Что вы можете:
источник
DATE_ADD
тогда-1 day
.Не видел правильных ответов, используя
DATE_ADD
илиDATE_SUB
:Вычтите 1 день из
NOW()
Добавить 1 день от
NOW()
источник
когда поле поиска является отметкой времени и вы хотите найти записи с 0 часов вчера и 0 часов сегодня, используйте конструкцию
вместо
источник