Je veux comparer deux dates avec le temps, je veux tous les résultats from tbl where date1 > date2
Select * From temp where mydate > '2009-06-29 04:00:44';
mais il s'agit simplement de comparer les dates et non l'heure. ça me donne tous les résultats de la date d'aujourd'hui
'2009-06-29 11:08:57'
'2009-06-29 11:14:35'
'2009-06-29 11:12:38'
'2009-06-29 11:37:48'
'2009-06-29 11:52:17'
'2009-06-29 12:12:50'
'2009-06-29 12:13:38'
'2009-06-29 12:19:24'
'2009-06-29 12:27:25'
'2009-06-29 12:28:49'
'2009-06-29 12:35:54'
'2009-06-29 12:36:54'
'2009-06-29 12:49:57'
'2009-06-29 12:58:04'
'2009-06-29 04:13:20'
'2009-06-29 04:56:19'
'2009-06-29 05:00:23'
'2009-06-29 05:04:26'
'2009-06-29 05:08:17'
'2009-06-29 05:26:57'
'2009-06-29 05:29:06'
'2009-06-29 05:32:11'
'2009-06-29 05:52:07'
Merci d'avance!
La requête que vous souhaitez afficher à titre d'exemple est:
SELECT * FROM temp WHERE mydate > '2009-06-29 16:00:44';
04:00:00 est 4AM, donc tous les résultats que vous affichez viennent après cela, ce qui est correct.
Si vous souhaitez tout afficher après 16 heures, vous devez utiliser la notation correcte (24 heures) dans votre requête.
Pour rendre les choses un peu plus claires, essayez ceci:
SELECT mydate, DATE_FORMAT(mydate, '%r') FROM temp;
Cela vous montrera la date et son heure de 12 heures.
Vous pouvez utiliser le SQL suivant pour comparer la date et l'heure -
Select * From temp where mydate > STR_TO_DATE('2009-06-29 04:00:44', '%Y-%m-%d %H:%i:%s');
Sortie mysql attachée lorsque j'utilisais le même SQL sur le même type de table et de champ que vous avez mentionné dans le problème-
Cela devrait fonctionner parfaitement.
Votre requête a apparemment renvoyé toutes les dates correctes, même en tenant compte de l'heure.
Si vous n'êtes toujours pas satisfait des résultats, essayez DATEDIFF et recherchez des résultats négatifs/positifs entre les deux dates.
Assurez-vous que votre colonne mydate
est de type datetime
.
Voulez-vous le commander?
Select * From temp where mydate > '2009-06-29 04:00:44' ORDER BY mydate;