Запрос MYSQL / даты старше 1 недели назад (все даты в формате UTC)


89

Как мне запросить mysql db, чтобы вернуть все записи с датой времени старше 1 недели назад. Обратите внимание, что таблица datetime хранит все в формате UTC, и я должен сравнивать это само.

Чтобы быть ясным - я ищу чистый запрос mysql.

Ответы:


215
SELECT * FROM tbl WHERE datetime < NOW() - INTERVAL 1 WEEK

Если ваша таблица хранит дату в другом часовом поясе, чем NOW()возвращаемый, вы можете использовать UTC_TIMESTAMP()вместо этого для получения отметки времени в формате UTC.


18
SELECT * FROM table WHERE DATEDIFF(NOW(),colname) > 7;

5
Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, почему и / или как этот код отвечает на вопрос, улучшает его долгосрочную ценность.
JAL

этот короче, я должен использовать этот?
moeiscool

3
Может, это короче, но как бы можно было использовать индекс.
swdev 03

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.