Consulta SQL Server - Manipulação de Datas

11/03/2021

0

Boa tarde,

Estou precisando criar uma consulta em SQL SERVER que faça a seguinte situação:

Tenho uma aplicação que tem 3 Ordem de Serviço, todas para setores executantes diferentes. Preciso somar as horas de paradas dessa aplicação, separando o intervalo equivalente. Por exemplo:

O.S. 0001 - Aplicação A. Inicio: 10/03/21 08:00 ate 10:00 - Total de horas 2 Horas.
O.S. 0002 - Aplicação A. Inicio: 10/03/21 08:30 ate 09:30 - Total de horas 1 Horas.
O.S. 0001 - Aplicação A. Inicio: 10/03/21 09:00 ate 10:30 - Total de horas 1:30 Horas.
O.S. 0001 - Aplicação A. Inicio: 10/03/21 12:00 ate 13:30 - Total de horas 1:30 Horas.

Total geral de parada dessa aplicação seria 04:00 que é o intervalo entre 08:00 ate 10:30, mais o intervalo 12:00 ate 13:00 e não a soma final de cada O.S. ,porem não estou conseguindo elaborar uma logica para isso.
Fabrício Vieira

Fabrício Vieira

Responder

Posts

12/03/2021

Samuel Goularte

Bom dia Fabrício,
trabalhar com contador de horas é sempre uma dor de cabeça ;)

Acredito que a primeira regra a ser desenvolvida neste contador seja a validação entre o fim da primeira parada e o inicio da segunda parada. No seu exemplo, vc tem que desconsiderar o inicio de um parada que seja menor que o final da para anterior (o ideal seria que o sistema que abre a OS impeça que isso aconteça) e a partir dai use o DATEDIFF(minute, fim_parada, inicio_parada); que vai lhe retornar um valordo tipo integer resultante da diferença de tempo do período.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar