[ORACLE 7] Calculer le temps entre 2 dates

Calculer le temps entre 2 dates [ORACLE 7] - SQL/NoSQL - Programmation

Marsh Posté le 06-09-2007 à 11:39:19    

Bonjour,
 
J'ai 2 dates, par exemple:
06/09/2007 08:10:00
 
06/09/2007 08:35:10
 
et je n'arrive pas à récupérer la différence entre ces 2 dates... genre 00:25:10
 
 

SQL> select to_date('06/09/2007 08:35:10', 'DD/MM/YYYY HH:MI:SS') - to_date('06/09/2007 08:10:00', 'DD/MM/YYYY HH:MI:SS') from dual;
 
TO_DATE('06/09/200708:35:10','DD/MM/YYYYHH:MI:SS')-TO_DATE('06/09/200708:10:00',
--------------------------------------------------------------------------------
                                                                      .017476852


 
 
Une idée ? J'aimerais ne pas passez par du PL/SQL si possible..

Reply

Marsh Posté le 06-09-2007 à 11:39:19   

Reply

Marsh Posté le 06-09-2007 à 12:36:33    

tu dois voir du coté des type interval (aucune idée si en 7 ca existait) ou alors formater ton nombre en sortie a coup de modulo.
mais de toute facon les fonction arithmétiques sur des dates ca marche pas génial génial en oracle ou alors il faut dévelloper ses propres fonctions.
 
pour info si tu ne 'lavais pas remarqué ce qu'il te sort la c'est ta fraction de jour.

Reply

Marsh Posté le 06-09-2007 à 13:44:55    

le type "datetime", en général, sur la plupart des SGBD, c'est un float.
 
la partie entière, c'est le nombre de jours depuis une date donnée, tandis que la partie décimale, c'est la fraction de jour correspondant à l'heure.
 
0,017 ça correspond dont à 1,7% d'une journée, c'est à dire 24 * 60 * 17 / 1000 = 25 minutes environ.
 
8:35:10 - 8:10:00 ~ 25 minutes effectivement.
 
logiquement :
 

Code :
  1. SELECT to_char(to_date('06/09/2007 08:35:10', 'DD/MM/YYYY HH:MI:SS') - to_date('06/09/2007 08:10:00', 'DD/MM/YYYY HH:MI:SS'), 'H24:MI:SS') FROM dual


 
te donnera exactement ton heure.
il n'y a pas d'erreur de la part d'Oracle.

Reply

Marsh Posté le 06-09-2007 à 15:12:56    

merci d'avoir pris du temps pour me répondre :)
magicbuzz, j'avais essayé ta requete, réponse d'oracle :
ORA-01481: invalid number format model
sinon, je me suis débrouillé en bidouillant, mais je fais plusieurs select.
C'est pas propre, mais le temps d'execution n'est pas important.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed