Requête MYSQL / dates antérieures à 1 semaine (toutes les dates en UTC)


89

Comment puis-je interroger une base de données mysql pour renvoyer tous les enregistrements avec une date antérieure à il y a 1 semaine. Notez que la table datetime stocke tout en UTC, et je devrais la comparer en elle-même.

Juste pour être clair - je recherche une requête mysql pure.

Réponses:


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

Si votre table stocke des heures de date dans un fuseau horaire différent de celui NOW()renvoyé, vous pouvez utiliser à la UTC_TIMESTAMP()place pour obtenir l'horodatage en UTC.


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

5
Bien que ce code puisse répondre à la question, fournir un contexte supplémentaire concernant la raison et / ou la manière dont ce code répond à la question améliore sa valeur à long terme.
JAL

celui-ci est plus court, dois-je utiliser celui-ci?
moeiscool

3
C'est peut-être plus court, mais comment pourrait-il utiliser un index.
swdev

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

OU

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

Résultat:

2007-12-26

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.