› Fóruns › SQL e PL/SQL › Diferença de Data com horas e minutos › Responder a: Diferença de Data com horas e minutos
26 de julho de 2019 às 3:09 pm
#143497
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