Ir para conteúdo

Arquivado

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

gildson

Calcular Horas - Campo timestamp

Recommended Posts

Olá Galera,

 

Estou com uma duvida e não consegui achar solução. Se alguem puder me ajudar eu agradeço!

 

Vamos lá!

 

No meu banco de dados tem uma tabela que registra todas as batidas de ponto do funcionário X e preciso calcular as horas trabalhadas de Sr X(rs), no meu SQL eu montei o seguinte para recuperar as informações

 

-----------------------SQL------------------------

 

select

codigo_emp,

codigo_fil,

codigo_cadfu,

data_registro,

hora_registro

 

from

vw_ponto_registro

 

-----------------------SQL------------------------

 

E o banco me retornou o seguinte

 

-----------------------IMG------------------------

 

Imagem Postada

 

 

-----------------------IMG------------------------

 

A pergunta é:

 

Como calcular a diferença de horas trabalhadas (H:M:S) do campo hora_registro (Camo destacado) que esta em formato timestamp

 

Obrigado Galera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou dar uma dica:

 

Tu só vai precisar do primeiro e do ultimo registro e ver o intervalo em horas que tem entre eles correto?

Pode usar a função age, um exemplo:

 

select age('05-03-1987 23:19:00', '05-03-1987 23:22:00')

 

Aí você pode fazer uma função no banco de dados onde você passa como parametro o código do funcionario e qq outra coisa para filtrar...

Seleciona o primeiro e o último registro e compara, retornando o intervalo em horas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou dar uma dica:

 

Tu só vai precisar do primeiro e do ultimo registro e ver o intervalo em horas que tem entre eles correto?

Pode usar a função age, um exemplo:

 

select age('05-03-1987 23:19:00', '05-03-1987 23:22:00')

 

Aí você pode fazer uma função no banco de dados onde você passa como parametro o código do funcionario e qq outra coisa para filtrar...

Seleciona o primeiro e o último registro e compara, retornando o intervalo em horas.

 

Fala {TeRmInAtOr}!

 

Cara fiz exatamente o que você me falou! consegui achar uma função dentro do meu banco de dados que faz esta transformação!

 

Muito obrigado pela resposta!

 

Good luck , Good Job!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue um exemplo espero que ajude:

 

Select t1.diferenca,
Trunc(mod(t1.diferenca*24, 60)) || ':' || Trunc(mod(t1.diferenca*24*60, 60)) || ':' || Trunc(mod(t1.diferenca*24*60*60, 60)) Tempo
from
(select t0.data_final - t0.data_inicial diferenca
from
(select
to_date('21/11/2010 18:45:10','dd/mm/yyyy hh24:mi:ss') data_inicial,
to_date('22/11/2010 21:30:00','dd/mm/yyyy hh24:mi:ss') data_final
from dual) t0) t1

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.