95 votes

Sélectionner les données entre une plage de dates/heures

Comment sélectionner des données entre une plage de dates dans MySQL. Mon datetime La colonne est au format de l'heure zoulou de 24 heures.

select * from hockey_stats 
where game_date between '11/3/2012 00:00:00' and '11/5/2012 23:59:00' 
order by game_date desc;

Il ne renvoie rien alors qu'il dispose de données entre ces périodes. Dois-je forcer les valeurs dans le champ "de y les champs à datetime dans la requête ?

165voto

Eugen Rieck Points 33670

Vous devez mettre à jour le format de la date :

select * from hockey_stats 
where game_date between '2012-03-11 00:00:00' and '2012-05-11 23:59:00' 
order by game_date desc;

22voto

Gordon Linoff Points 213350

Voici une méthode simple utilisant la fonction de date :

select *
from hockey_stats
where date(game_date) between date('2012-11-03') and date('2012-11-05')
order by game_date desc

9voto

rashedcs Points 976

Un moyen simple :

select  * from  hockey_stats 
where  game_date >= '2012-03-11' and game_date  <= '2012-05-11'

5voto

fthiella Points 21512

Vous devez probablement utiliser STR_TO_DATE fonction :

select * from hockey_stats 
where
  game_date between STR_TO_DATE('11/3/2012 00:00:00', '%c/%e/%Y %H:%i:%s')
                and STR_TO_DATE('11/5/2012 23:59:00', '%c/%e/%Y %H:%i:%s') 
order by game_date desc;

(si game_date est une chaîne, vous devrez peut-être utiliser STR_TO_DATE sur celle-ci)

5voto

C T Mithun Points 36

De manière simple, on peut l'interroger comme suit

select * from hockey_stats 
where game_date between '2018-01-01' and '2018-01-31';

Cela fonctionne si le temps n'est pas un problème.

Le temps de réflexion se déroule également de la manière suivante :

select * from hockey_stats where (game_date between '2018-02-05 01:20:00' and '2018-02-05 03:50:00');

Notez que ceci est pour le serveur MySQL.

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