Ir para conteúdo

POWERED BY:

Arquivado

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

douglassminas

subtraindo 3 data no query

Recommended Posts

Pessoal, Estou precisando de uma ajuda para montar um relatório, tenho uma regra no sistema com data de entrada "13/02/2007 08:00:09" hora de intervalo, este campo eu criei com márcara apenas para hora, então o usuário só só digita a hora "30/12/1899 (01:00:00)" e hora de saída "13/02/2007 18:00:00" preciso fazer a diferença das tres datas ou seja:Hora de Saida - Hora de Chegada - Tempo de intervaloEu convegui subtrair a hora de saída com a hora de chegada, mas quando tento colocar o intervalo meu query não funciona.eu estou usando a regra: SELECT SUM((CONVERT(FLOAT,DATHORFIM)-CONVERT(FLOAT,DATHORINI))*24) HORAS_REALFROM ORDXFUNELE RETORNA 10 HORAS MAS EU PRECISO QUE RETORNO 9 HORAS , COM A DIFERENÇA DO INTERVALO

Compartilhar este post


Link para o post
Compartilhar em outros sites

naum entendi, naum seria só adicionar na conta

declare @hrINT datetime, 	@hrINI datetime,	@hrFIM datetimeset @hrINT = '08:00:00'set @hrINI = '01:00:00'set @hrFIM = '18:00:00'SELECT SUM((CONVERT(FLOAT,@hrFIM)-CONVERT(FLOAT,@hrINI)-CONVERT(FLOAT,@hrINT))*24) HORAS_REAL
retornou

HORAS_REAL ----------------------------------------------------- 9.0000000000000018(1 row(s) affected)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda, mas meu campo hora inicial, hora final e hora de intervalo, e uma variável . eu tenho que somar totas as horas de todo o mês que o funcionário trabalhou. então se ele entrou hoje ás 07:00, fez um intervalo de 02:00 e saiu ás 19:00. o valor de horas trabalhadas daquele dia é de 10 Horas. e depois tenho que somar as horas dos outros dias, sendo que , ele pode entrar em horários deferentes. Ja tendei fazer o calculo direto, SELECT SUM((CONVERT(FLOAT,DATHORFIM)-CONVERT(FLOAT,DATHORINI)-CONVERT(FLOAT,U_INTERV))*24) HORAS_REAL FROM ORDXFUN , mas ele não me retorna 10 Horas e sim 56,9999999999418 , porque o meu campo U_INTERV é um campo datetime mas com máscara para informar apenas a hora, então a data sai antiga.

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.