Pular para o conteúdo

Fóruns SQL e PL/SQL Diferença de Data com horas e minutos Responder a: Diferença de Data com horas e minutos

#143497
Avatar photoJosé Laurindo Chiappa
Moderador

    Eu fui dar uma olhada melhor, e a Causa era um Arredondamnento, o cálculo tava dando 29,999995, aí o TRUNC que eu usei antes dava 29 …. A solução acredito que é só pedir mais um MOD, assim :

    scott@DESENV:SQL>insert into T values(TO_DATE('01/06/2006 10:30:00', 'dd/mm/yyyy hh24:mi:ss'), TO_DATE('02/06/2006 11:00:00', 'dd/mm/yyyy hh24:mi:ss'));
    
    1 linha criada.
    
    scott@DESENV:SQL>insert into T values (TO_DATE('01/06/2006 11:00:00', 'dd/mm/yyyy hh24:mi:ss'),  TO_DATE('01/06/2006 11:30:00', 'dd/mm/yyyy hh24:mi:ss') ) ;
    
    1 linha criada.

    ==> Agora a query alterada :

    scott@DESENV:SQL>select start_date, end_date,
      2    trunc(    24*mod(end_date - start_date,1))           as HORAS,
      3         (   mod(mod(end_date - start_date,1)*24,1)*60 ) as MINUTOS
      4   from T;
    
    START_DATE          END_DATE                HORAS   MINUTOS
    ------------------- ------------------- --------- ---------
    01/06/2006 11:00:00 02/06/2006 10:30:00        23        30
    01/06/2006 10:30:00 02/06/2006 14:00:00         3        30
    01/06/2006 10:10:00 02/06/2006 13:50:00         3        40
    03/06/2006 10:00:00 03/06/2006 13:00:00         3         0
    04/06/2006 10:10:00 07/06/2006 13:50:00         3        40
    05/06/2006 08:00:00 06/06/2006 08:00:00         0         0
    05/06/2006 08:10:00 05/06/2006 08:12:00         0         2
    06/06/2006 08:00:00 09/06/2006 09:12:00         1        12
    01/06/2006 10:30:00 02/06/2006 11:00:00         0        30
    01/06/2006 11:00:00 01/06/2006 11:30:00         0        30
    
    10 linhas selecionadas.
    
    scott@DESENV:SQL>

    ==> faz uns testes mais, mas Acredito que é isso aí….

    []s

    Chiappa