Как мне запросить mysql db, чтобы вернуть все записи с датой времени старше 1 недели назад. Обратите внимание, что таблица datetime хранит все в формате UTC, и я должен сравнивать это само.
Чтобы быть ясным - я ищу чистый запрос mysql.
SELECT * FROM tbl WHERE datetime < NOW() - INTERVAL 1 WEEK
Если ваша таблица хранит дату в другом часовом поясе, чем NOW()
возвращаемый, вы можете использовать UTC_TIMESTAMP()
вместо этого для получения отметки времени в формате UTC.
SELECT * FROM table WHERE DATEDIFF(NOW(),colname) > 7;
SELECT SUBDATE('2008-01-02', 7);
ИЛИ
SELECT SUBDATE(now(), INTERVAL 1 week);
Результат:
2007-12-26
источник