Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jeffersonquintiliano

Data oracle

Recommended Posts

Boa noite

 

Preciso fazer a conta de horas com os dados das colunas abaixo, lembrando que primeira linha tem mais de 24 horas e ultima linha saida esta vazia. Entao com isso trazer se tiver NULL trazer SYSDATE

 

preciso trazer em horas minutos segundos

HH MM SS

EX 100 :01 :20

 

ENTRADA SAIDA

22-abr-2015 21:02:11 24-abr-2015 21:05:18
24-abr-2015 21:05:18 24-abr-2015 21:11:27
24-abr-2015 21:11:27 24-abr-2015 21:11:38
24-abr-2015 21:11:38 24-abr-2015 21:12:23
24-abr-2015 21:12:23 24-abr-2015 21:14:21
24-abr-2015 21:14:21 24-abr-2015 21:15:15
24-abr-2015 21:15:15 24-abr-2015 21:15:22
24-abr-2015 21:15:22 24-abr-2015 21:17:02
24-abr-2015 21:17:02 24-abr-2015 21:17:28
24-abr-2015 21:17:28

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta Meu problema e quando passa de 24 horas

 

Estava usando isso

 

select
sum( to_char( to_date( soma, 'hh24:mi:ss' ), 'hh24' ) ) +
round(
( ( sum( to_char( to_date( soma, 'hh24:mi:ss' ), 'mi' ) )
+
round( sum( to_char( to_date( soma, 'hh24:mi:ss' ), 'ss' ) ) / 60 ) ) / 60 )
)
|| ':' ||
mod( sum(to_char(to_date(soma, 'hh24:mi:ss'), 'mi') ), 60 )
|| ':' ||
mod( sum(to_char(to_date(soma, 'hh24:mi:ss'), 'ss') ), 60 )
FROM ticket_his_status
So que passa de 24 horas ex uma data e 3 dias depois ele da erro de 24 horas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma diferença entre datas dá um resultado em dias (ou fração) , com base nisto dá para calcular dias , horas etc.

 

1 dia = 24 horas

1 hora = 60 minutos

1 minuto = 60 segundos

 

Estou sem Oracle , na segunda tento postar um exemplo.

 

Você presica do resultado como ?

 

Dias horas minutos segundos ?

 

Dias horas (arrendondando) ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta preciso de hora minuto segundo , hora pode passar de 24 horas

 

Lembrando que o ultima saida pode ter valor null (PARA NULL informa sysdate) ou saida registrado

HH MM SS

EX 100 :01 :20

ENTRADA SAIDA

22-abr-2015 21:02:11 24-abr-2015 21:05:18
24-abr-2015 21:05:18 24-abr-2015 21:11:27
24-abr-2015 21:11:27 24-abr-2015 21:11:38
24-abr-2015 21:11:38 24-abr-2015 21:12:23
24-abr-2015 21:12:23 24-abr-2015 21:14:21
24-abr-2015 21:14:21 24-abr-2015 21:15:15
24-abr-2015 21:15:15 24-abr-2015 21:15:22
24-abr-2015 21:15:22 24-abr-2015 21:17:02
24-abr-2015 21:17:02 24-abr-2015 21:17:28
24-abr-2015 21:17:28

Compartilhar este post


Link para o post
Compartilhar em outros sites

O dia virá somado de um pois com o artificio usado a diferença foi somada a uma data arbitária para cálculo (dia 01) , mas creio que a solução seja simples.

 

Tente uma FUNCTION talvez até pronta na web você localize , algo assim

--CONVERTANDO EM HORA
select  TO_CHAR(TO_DATE('01/01/2013 00:00:00','DD/MM/YYYY HH24:MI:SS') + 
                              ( SAIDA - ENTRADA),
                             'DD HH24:MI:SS') S
from
(.... 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.