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.

tzmatt7447
la source

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.

reko_t
la source
18
SELECT * FROM table WHERE DATEDIFF(NOW(),colname) > 7;
Sajjad Shirazy
la source
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

Michael Pakhantsov
la source