{Oracle} Comparaison de date/heure

Résolu/Fermé
stephane160 - 25 juin 2009 à 19:54
 stephane160 - 26 juin 2009 à 19:13
Bonjour,

Je sollicite votre aide pour la conception d'une requête SQL sous Oracle. Je m'explique, j'ai une table avec plusieurs champs dont une date_debut, une heure_debut, une date_fin et une heure_fin. Les dates sont de format (JJ/MM/AAAA) et les heures de format (HH:MM). Maintenant j'aimerais savoir comment récupérer le délai entre la date/heure début et la date/heure fin. J'ai donc essayé de tout convertir en minutes en faisant (date_fin - date_debut)*1440 + (heure_fin - heure_debut) mais ça ne fonctionne pas. En effet la différence de date fonctionne mais pas celle des heures. Où alors il faudrait que je fasse la différence des heures * 60 + la différence des minutes mais je ne sais pas comment faire pour séparer les heures et les minutes.

Quelqu'un pourrait-il m'aider ? Si vous avez une autre solution je suis preneur aussi.

Merci d'avance.

1 réponse

chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
26 juin 2009 à 08:28
Salut,
Y'a un truc pas très beau mais qui peut marcher pour les heures:
to_number(substr(ton_champs_heures,0,2))-to_number(substr(ton_autres_champs_heures,0,2))//tu fais pareil pour les minutes,et tu obtiens des minutes
Si ton champ heure fait partie de ta date, tu sera obligé de rajouter un to_char(ta_date,'le format qui va bien avec les heures et minutes') dans le substr....
C'est une piste....
@+
0
stephane160
26 juin 2009 à 19:13
Merci beaucoup, ça fonctionne à présent. Pour info j'ai fait :

(date_fin - date_debut)*1440 + (to_number(substr(heure_fin,1,2)) - to_number(substr(heure_debut,1,2)))*60 + (to_number(substr(heure_fin,4,2)) - to_number(substr(heure_debut,4,2)))

Ce qui me donne le délai en minutes
0