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 ?

4voto

Hafiz Shehbaz Ali Points 1635

Le format de date de MySQL est le suivant : Y-M-D. Vous utilisez Y/M/D. C'est faux. Modifiez votre requête.

Si vous insérez la date comme Y/M/D, il sera inséré une valeur nulle dans la base de données.

Si vous utilisez PHP et que la date que vous obtenez du formulaire est du type Y/M/D, vous pouvez la remplacer par l'instruction .

out_date=date('Y-m-d', strtotime(str_replace('/', '-', $data["input_date"])))

2voto

stackFan Points 964

Vous pouvez soit utiliser STR_TO_DATE et passer vos propres paramètres de date en fonction du format que vous avez affiché :

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;

Ou bien utilisez simplement le format que MySQL utilise pour les dates AAAA:MM:DD HH:mm:SS et formulez la requête comme suit

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;

2voto

ramber Points 21

Vous devez rechercher la défense de date sur la façon dont vous insérez que les données de game_date sur votre base de données par exemple si vous avez inséré la valeur de date sur la longue date ou courte.

SELECT * FROM hockey_stats WHERE game_date >= "6/11/2018" AND game_date <= "6/17/2018"

Vous pouvez également utiliser ENTRE :

SELECT * FROM hockey_stats WHERE game_date BETWEEN "6/11/2018" AND "6/17/2018"

C'est aussi simple que cela.

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