Zapytanie / daty MYSQL starsze niż 1 tydzień temu (wszystkie daty w UTC)


89

Jak wysłać zapytanie do bazy danych mysql, aby zwrócić wszystkie rekordy z datą i godziną starszą niż 1 tydzień temu. Zauważ, że tabela datetime przechowuje wszystko w UTC i powinienem porównać to w tym samym.

Żeby było jasne - szukam czystego zapytania mysql.

Odpowiedzi:


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

Jeśli Twoja tabela przechowuje daty w innej strefie czasowej niż ta, która NOW()zwraca, możesz użyć UTC_TIMESTAMP()zamiast tego, aby uzyskać sygnaturę czasową w UTC.


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

5
Chociaż ten kod może odpowiedzieć na pytanie, zapewnia dodatkowy kontekst dotyczący tego, dlaczego i / lub jak ten kod odpowiada, poprawia jego długoterminową wartość.
JAL

ten jest krótszy, czy powinienem użyć tego?
moeiscool

3
Może to jest krótsze, ale w jaki sposób można by użyć indeksu.
swdev

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.