[oracle] comparaison d'heures

Résolu/Fermé
Gilles M - 2 déc. 2005 à 15:59
 Nozoum - 16 mars 2007 à 15:46
Bonjour,
Je travaille sous une base Oracle 8i. Je dispose d'un champs date du type 01/12/05 16:01:50. Il faut que je sélectionne tous les enregistrements dont la l'heure est comprise entre 8h00 et 8h30.
Si quelqu'un connait la solution ....
Merci d'avance
Gilles
A voir également:

3 réponses

Salut Gilles,

Un peu tordu mais tu peux faire comme ça :

select to_char(sysdate, 'DD/MM/YYYY HH24:MI') from dual
where to_number(to_char(sysdate, 'HH24MI')) between 0800 and 0830;
3
Bonjour Marina,
Merci beaucoup pour cette réponse qui n'est pas tordue puisqu'elle fonctionne :-)
A charge de revanche.
Gilles
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
2 déc. 2005 à 16:25
select * from ...
where date between '2005-12-01 08:00' and '2005-12-01 08:30'


si je ne me trompe pas.
2
Il y a pas besoin de convertir avec TO_NUMBER, la solution est très simple:

SELECT * FROM [TABLE]
WHERE TO_CHAR([CHAMP], 'HH24:MI') BETWEEN '08:00' AND '08:30'

Il gère tout seul le between sur du texte sans problème, @+
0
bacchuss Messages postés 1162 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 6 avril 2009 190
2 déc. 2005 à 16:33
oui mais la c'est que pour une journée, non ?
ne faut-il pas utiliser TO_CHAR() et SUBSTR() si on veut extraire uniquement
les heures de tous les jours ?

ou mieux HOUR() et MINUTE()
0
Effectivement, le problème se pose lorsque l'on travaille sur plusieurs dates.
J'avais essayer de travailler avec
to_char(date,'HH24:MI) between '08:00' and '08:30' mais cela ne fonctionne pas
0