Ответ 1
SELECT * FROM tbl WHERE datetime < NOW() - INTERVAL 1 WEEK
Если ваша таблица хранит данные в разном часовом поясе, чем возвращает NOW()
, вы можете использовать UTC_TIMESTAMP()
вместо этого, чтобы получить метку времени в UTC.
Как мне запросить mysql db для возврата всех записей с датней временем, старше 1 недели назад. Обратите внимание, что таблица datetime хранит все в UTC, и я должен сравнивать ее в этом самом...
Jusst будет ясным - я ищу чистый 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