2012-01-25 2 views
3

J'ai besoin de sélectionner des lignes de la table, où par ex. l'heure est> = 18:00:00 peu importe la date. Le problème est que la valeur est datetime type donc il y a aussi la date à côté. par exemple. 2012-01-25 18:00:00.Comment filtrer une requête par la partie heure d'un champ DateTime dans MySQL?

table1 
====== 
row 1: id='1' datetime='2012-01-25 18:00:00' 
row 2: id='2' datetime='2012-01-27 15:00:00' 
row 3: id='3' datetime='2012-01-30 19:45:00' 

J'ai besoin de sélectionner la ligne 1 et la ligne 3.

Y at-il moyen de combiner LIKE et> = à faire du temps> = '% 18:00:00' où% représente quelle que soit la date?

Répondre

4

Vous pouvez utiliser la fonction TIME():

WHERE TIME(`datetime`) >= '18:00:00' 
+0

travaillant comme un charme, merci! – woopata

1

Quelque chose comme ça peut-être:

SELECT * 
FROM yourTable 
WHERE 
    EXTRACT(HOUR FROM YourDate)>18 
2
select * 
from table1 
where HOUR(datimetime) >= 18 
Questions connexes