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

89

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

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

tzmatt7447
источник

Ответы:

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

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

reko_t
источник
18
SELECT * FROM table WHERE DATEDIFF(NOW(),colname) > 7;
Саджад Ширази
источник
5
Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, почему и / или как этот код отвечает на вопрос, улучшает его долгосрочную ценность.
JAL
этот короче, я должен использовать этот?
moeiscool
3
Может, это короче, но как бы можно было использовать индекс.
swdev 03
13
SELECT SUBDATE('2008-01-02', 7);

ИЛИ

SELECT SUBDATE(now(), INTERVAL 1 week);

Результат:

2007-12-26

Михаил Паханцов
источник