[oracle] comparaison d'heures

Résolu
Gilles M -  
 Nozoum -
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

marina
 
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
Gilles M
 
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   Statut Modérateur Dernière intervention   15 662
 
select * from ...
where date between '2005-12-01 08:00' and '2005-12-01 08:30'


si je ne me trompe pas.
2
Nozoum
 
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   Statut Membre Dernière intervention   190
 
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
Gilles M
 
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