Página 1 de 1

Calcular diferença entre datas com horas e minutos

Enviado: Sex, 26 Jul 2019 8:10 am
por frlopes
Pessoal, bom dia.

Preciso calcular em horas e minutos a diferença entre datas com horas e minutos.
:roll:

Exemplo 1:

Data Inicial: 01/06/2006 10:30
Data Final: 02/06/2006 11:00

Preciso que o retorno seja: 23:30

Exemplo 2:

Data Inicial: 01/06/2006 10:30
Data Final: 02/06/2006 14:00

Preciso que o retorno seja: 27:30


Tentei o seguinte código abaixo (baseado no exemplo 1), porém ele dá uma diferença de 1 hora a mais. Alguém pode me ajudar? Alguma outra sugestão? :oops:


Obrigada!

Selecionar tudo

select round(((to_number(to_date('02/06/2006 11:00','DD/MM/RRRR HH24:MI') -
                         to_date('01/06/2006 10:30','DD/MM/RRRR HH24:MI')) * 1440))/60)||':'||
            round((to_number(to_date('02/06/2006 11:00','DD/MM/RRRR HH24:MI') -
                         to_date('01/06/2006 10:30','DD/MM/RRRR HH24:MI')) * 1440) -1440)
from dual

Re: Calcular diferença entre datas com horas e minutos

Enviado: Qui, 01 Ago 2019 6:27 pm
por dr_gori
Certo.
Eu vi que no exemplo 1, na verdade o correto seria 24h e 30 min. (Não 23:30).
Data Inicial: 01/06/2006 10:30
Data Final: 02/06/2006 11:00
Preciso que o retorno seja: 23:30
Mas tranquilo.
Eu fiz o select abaixo.
Não sei se é a melhor forma. Mas assim ta funcionando!

Selecionar tudo

select trunc(horas) horas
,      (horas-trunc(horas)) * 60 minutos
from 
  (
  select
    trunc(h2-h1) * 24 +   (h2-h1 - trunc(h2-h1)) * 24 horas
  from (
        select
          to_date('01/06/2006 10:30', 'dd/mm/yyyy hh24:mi') h1
        , to_date('02/06/2006 14:00', 'dd/mm/yyyy hh24:mi') h2
        from dual
        )
  )  
Retorna assim:

Selecionar tudo

     HORAS    MINUTOS
---------- ----------
        27         30

SQL> 
Ai você pode adaptar isso numa função, e formatar os números pra sempre ter 2 casas decimais...etc. :-o

Re: Calcular diferença entre datas com horas e minutos

Enviado: Sáb, 03 Ago 2019 8:41 pm
por Renato Menezes Viana
Pessoal, dá uma olhada no link abaixo:
http://glufke.net/oracle/viewtopic.php? ... 992#p38992