Pegar hora e minuto em diferença de datas

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
xprata
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 93
Registrado em: Ter, 06 Abr 2010 11:31 am
Localização: São Paulo - SP

Boa noite senhores,
Tenho que calcular 2 datas e dar o resultado em horas e minutos...
Qual a formatação correta a fazer...
ex. periodo

22/11/2010 18:57 ate 22/11/2010 20:40

Como obter o valor 1 hora e 43 minutos
burga
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Qui, 26 Nov 2009 1:05 pm
Localização: SP
Ricardo H. Tajiri

O valor retornado do cálculo da data maior menos a data menor é o numero de dias entre a primeira e a ultima data...

Sabendo disto, você consegue obter o número de horas e minutos...

Pega o numero que deu inteiro e multiplica por 24... vai dar o numero de dias em valores por hora. O número decimal restante você divide multiplica por 24, que dá as horas que faltam... e o decimal dessa multiplicação você multiplica por 60 novamente e vai dar o número de minutos...

Exemplo:

Selecionar tudo

with t0 as (
select 
  to_date('21/11/2010 18:57:00','dd/mm/yyyy hh24:mi:ss') data_inicial, 
  to_date('22/11/2010 21:40:25','dd/mm/yyyy hh24:mi:ss') data_final
from dual),
t1 as (
select data_final - data_inicial diferenca from t0
)
select 
  trunc(diferenca)*24 + trunc((diferenca - trunc(diferenca))*24) horas,
  trunc((((diferenca - trunc(diferenca))*24) - trunc((diferenca - trunc(diferenca))*24))*60) minutos
from t1;
xprata
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 93
Registrado em: Ter, 06 Abr 2010 11:31 am
Localização: São Paulo - SP

Obrigado, funcionou beleza....
Avatar do usuário
tiagodutra
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Qua, 19 Jan 2011 2:50 pm
Localização: Novo Hamburgo - RS
Tiago

Boa tarde,

Gente sou novo tanto no forum quanto no Oracle, mas já achei muitas das soluçoes dos meus problemas aqui so que desta vez não consegui achar o furo eu somente dei um copia e cola nesse codigo no meu SQL-PLUS e ele retorna

HORAS MINUTOS
---------- ----------
26 43

ao invéns da diferença de uma hora e poquinho como deveria, podem me ajudar?
desde já agradeço.

:shock:
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

Avatar do usuário
tiagodutra
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Qua, 19 Jan 2011 2:50 pm
Localização: Novo Hamburgo - RS
Tiago

Cara muito obrigado bota luz no fim do túnel. hehehe somente vou implementar isso na minha query, mas vai ficar 100%

Valeu a dica e muito Obrigado pela ajuda.

:-o
fkviana
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Qui, 28 Jan 2010 12:35 pm
Localização: São José dos Campos - SP

obrigado pela ajuda!!

+DD
marcus.asse
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 4
Registrado em: Qui, 28 Fev 2013 10:49 am

Me ajudou muito a query postada pelo burga

Valeu!!
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Google Adsense [Bot] e 10 visitantes