Запит MYSQL / дати, старші за 1 тиждень тому (усі дати в UTC)


89

Як мені надіслати запит до mysql db, щоб повернути всі записи з датою та часом, старшим за 1 тиждень тому. Зверніть увагу, що в таблиці часу і часу все зберігається в 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

4
Можливо, це коротше, але як би він міг використовувати індекс.
swdev

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.