Comment interroger une base de données mysql pour renvoyer tous les enregistrements avec une date/heure antérieure à il y a plus d'une semaine. Notez que la table datetime stocke tout dans UTC, et je devrais la comparer dans cela même ...
Juste pour être clair - je cherche une requête pure mysql
SELECT * FROM tbl WHERE datetime < NOW() - INTERVAL 1 WEEK
Si votre table stocke les dates/heures dans un fuseau horaire différent de celui renvoyé par NOW()
, vous pouvez utiliser UTC_TIMESTAMP()
à la place pour obtenir l'horodatage au format UTC.
SELECT * FROM table WHERE DATEDIFF(NOW(),colname) > 7;
SELECT SUBDATE('2008-01-02', 7);
OR
SELECT SUBDATE(now(), INTERVAL 1 week);
Résultat:
2007-12-26