Subtração 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
renatalucg
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Qua, 26 Out 2011 12:21 pm

Oii Pessoal, tudo bem?

Estou precisando de uma ajuda... estou desenvolvendo um relatório que preciso mostrar o período entre duas datas (pode ser em horas ou minutos, tanto faz). tenho dois campos e estou fazendo uma subtração entre eles, mas o valor está saindo de uma forma que não estou entendendo:

Selecionar tudo

24.08.2011 01:34:35 - 23.08.2011 23:48:16 = ,0738310185185185185185185185185185185185
Alguém pode me ajudar?

Desculpe se houver outro topico, mas procurei e não achei..
Jota
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 77
Registrado em: Qua, 17 Jun 2009 3:18 pm
Localização: Blumenau - SC
Jonatas Jaqmam Pereira
Analista Desenvolvedor de Sistemas

olá,

Tenta multiplicar o resultado por 24 para obter as horas.

Para minutos, multique por 1440.

Tente para ver se consegue o resultado esperado.
renatalucg
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Qua, 26 Out 2011 12:21 pm

Olá Jonatas

eu fiz isso e resultou 1,77194444444444444444444444444444444444. Significa que eu tenho um período de 1,7 horas?
Jota
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 77
Registrado em: Qua, 17 Jun 2009 3:18 pm
Localização: Blumenau - SC
Jonatas Jaqmam Pereira
Analista Desenvolvedor de Sistemas

Sim, seu intervalo de horas é menos que 2 horas, pois é das 23:48 até 01:34.

Em minutos daria algo em torno de 106 minutos.
renatalucg
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Qua, 26 Out 2011 12:21 pm

Bacana foi isso mesmo que retornou!!

Muito obrigada pela ajuda!! :D
Jota
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 77
Registrado em: Qua, 17 Jun 2009 3:18 pm
Localização: Blumenau - SC
Jonatas Jaqmam Pereira
Analista Desenvolvedor de Sistemas

Apenas para esclarecer: O resultado que você havia encontrado na sua subtração, ,0738310185185185185185185185185185185185, é o resultado em dias, ou seja 0,07 dias.

Multiplicando por 24 (24 horas do dia) nos trouxe o valor em horas.

Multiplicando por 1440 (1440 minutos do dia) nos trouxe o valor em minutos.

Multiplicando por 86400 (86400 segundos do dia) nos trouxe o valor em segundos.
renatalucg
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Qua, 26 Out 2011 12:21 pm

Entendi.. bacana para caso acontecer novamente e eu queira um resultado diferente! :)
ishii
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 82
Registrado em: Ter, 28 Dez 2010 7:41 pm
Localização: São Paulo - SP

Olá,

Tente com o extract também..

Selecionar tudo

select extract(hour from (datahorafinal- datahorainicial) day to second) + 
round(extract(minute from  (datahorafinal- datahorainicial)day to second)/60,2) 
from table;
[]s Ishii
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes