110 votes

Comment comparer les dates d'horodatage avec les paramètres de date seule dans MySQL ?

Dans une instruction SQL, comment puis-je comparer une date enregistrée en tant qu'HORODATAGE avec une date au format AAAA-MM-JJ ?

Ex. : SELECT * FROM table WHERE timestamp = '2012-05-25'

Je veux que cette requête renvoie toutes les lignes ayant l'horodatage dans le jour spécifié, mais elle ne renvoie que les lignes ayant l'horodatage de minuit.

merci

183voto

Marcus Adams Points 27070

Vous pouvez utiliser la fonction DATE() pour extraire la partie date de l'horodatage :

SELECT * FROM table
WHERE DATE(timestamp) = '2012-05-25'

Cependant, si vous avez un index sur la colonne timestamp, cela serait plus rapide car il pourrait utiliser un index sur la colonne timestamp si vous en avez un :

SELECT * FROM table
WHERE timestamp BETWEEN '2012-05-25 00:00:00' AND '2012-05-25 23:59:59'

11voto

juergen d Points 85039
 WHERE cast(timestamp as date) = '2012-05-05'

6voto

Cfreak Points 10831
SELECT * FROM table WHERE timestamp >= '2012-05-05 00:00:00' 
    AND timestamp <= '2012-05-05 23:59:59'

2voto

adrien Points 3151

Utilisez une fonction de conversion de MYSQL :

SELECT * FROM table WHERE DATE(timestamp) = '2012-05-05' 

Cela devrait fonctionner

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X