Consulta SQL Server - Manipulação de Datas

SQL Server

Banco de Dados

11/03/2021

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

Curtidas 1

Respostas

Samuel Goularte

Samuel Goularte

11/03/2021

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.


GOSTEI 0
POSTAR