Query / date MYSQL precedenti a 1 settimana fa (tutti i datetimes in UTC)


89

Come interrogare un database mysql per restituire tutti i record con un datetime più vecchio di 1 settimana fa. Nota che la tabella datetime memorizza tutto in UTC e dovrei confrontarlo in quello stesso.

Giusto per essere chiari, sto cercando una query mysql pura.

Risposte:


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

Se la tua tabella memorizza i datetimes in un fuso orario diverso da quello NOW()restituito, puoi utilizzarlo UTC_TIMESTAMP()invece per ottenere il timestamp in UTC.


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

5
Sebbene questo codice possa rispondere alla domanda, fornire un contesto aggiuntivo sul perché e / o come questo codice risponde alla domanda ne migliora il valore a lungo termine.
JAL

questo è più corto, dovrei usare questo?
moeiscool

4
Forse questo è più breve ma come sarebbe in grado di utilizzare un indice.
swdev

13
SELECT SUBDATE('2008-01-02', 7);

O

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

Risultato:

2007-12-26

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.