BETWEEN

Répondre
JuTs
le 26/12/2004 à 12:05
JuTs
Salut

J'ai une table avec un champ datetime. Je voudrais pouvoir récupérer les données dont l'heure se situe entre deux heures données (comment ça j'suis pas clair ? smiley)

exemple :

la requête

SELECT champ_datetime FROM ma_table
WHERE champ_datetime BETWEEN '2005-05-14 06:00:00' AND '2005-05-14 12:00:00'

permet de récupérer les champs_datetime dont la valeur se trouve entre 2005-05-14 06:00:00 et 2005-05-14 12:00:00.

Ce que je veux c'est pouvoir récupérer ces champs sans tenir compte de la date mais uniquement de l'heure. Comme on le ferait avec LIKE '____-__-__ 06:00:00. Seulement BETWEEN n'aime pas LIKE smiley
JuTs
mobman02
le 26/12/2004 à 20:05
mobman02
bah, la moi je ne peu pas t'aider.
A ta place j'aurais mis la date et l'heure dans des champs differents.
http://damienalexandre.fr/
JuTs
le 27/12/2004 à 11:12
JuTs
Si je pouvais éviter de devoir modifier ça, ça m'arrangerait
JuTs
Bzh
le 27/12/2004 à 11:16
Bzh
la je suis de l' avie de mobman02 !!!

Désolé, je peux pas t' aider... A moin que tu sépare l' heure et la date !!!

smiley
zebden
le 27/12/2004 à 12:47
zebden
et BETWEEN '%'.$heure AND '%'.$heure2 , ca marche ?
zebdinou pour les intimes / Blog : http://www.zebden.fr
JuTs
le 27/12/2004 à 12:55
JuTs
Je ne sais pas mais j'ai trouvé. La solution est d'utiliser la fonction EXTRACT

Ma requête devient donc :

SELECT champ_datetime FROM ma_table
WHERE EXTRACT(HOUR FROM champ_datetime) BETWEEN EXTRACT(HOUR FROM '2005-05-14 06:00:00') AND EXTRACT(HOUR FROM '2005-05-14 12:00:00')
JuTs
JuTs
le 27/12/2004 à 12:55
JuTs
En y réfléchissant, je dois pouvoir simplifier en :

SELECT champ_datetime FROM ma_table
WHERE EXTRACT(HOUR FROM champ_datetime) BETWEEN 06 12
JuTs
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours