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

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

Aceitar