Existe-t-il un moyen dans une instruction MySQL d'ordonner les enregistrements (via un horodatage) par> = NOW () -1 afin que tous les enregistrements de la veille d'aujourd'hui au futur soient sélectionnés?
138
À en juger par la documentation des fonctions de date / heure , vous devriez pouvoir faire quelque chose comme:
SELECT * FROM FOO
WHERE MY_DATE_FIELD >= NOW() - INTERVAL 1 DAY
Sachez que le résultat peut être légèrement différent de ce que vous attendez.
NOW()
renvoie unDATETIME
.Et
INTERVAL
fonctionne comme nommé, par exempleINTERVAL 1 DAY = 24 hours
.Donc, si votre script est créé pour s'exécuter
03:00
, il manquera le fichierfirst three hours of records from the 'oldest' day
.Pour une utilisation toute la journée
CURDATE() - INTERVAL 1 DAY
. Cela reviendra au début de la veille, quel que soit le moment où le script est exécuté.la source
Vous y êtes presque: c'est
NOW() - INTERVAL 1 DAY
la source
Sûr que vous pouvez:
la source
DATE_ADD
alors-1 day
.Je n'ai vu aucune réponse correctement en utilisant
DATE_ADD
ouDATE_SUB
:Soustraire 1 jour de
NOW()
Ajouter 1 jour à partir de
NOW()
la source
lorsque le champ de recherche est horodaté et que vous souhaitez rechercher des enregistrements entre 0 heure hier et 0 heure aujourd'hui, utilisez la construction
au lieu
la source