Veja neste artigo como podemos efetuar a soma de horas em SQL.
1º - RETIRAR A HORA DE UM CAMPO DATE TIME.
SELECT CONVERT(VARCHAR(5),HORA,108) FROM TABELA
RESULTADO
08:20
O VARCHAR(X) QUE CONTROLARÁ O QTDE DE CARÁCTER DESEJA QUE EXIBA.
2º - SOMA DE HORAS
SELECT CONVERT (VARCHAR, SUM (CONVERT (INT, LEFT (HORA, 2))) + (((SUM (CONVERT (INT, RIGHT (HORA, 2)))) - (SUM (CONVERT (INT, RIGHT (HORA, 2))) % 60)) / 60)) + ':' + CONVERT (VARCHAR, SUM (CONVERT (INT, RIGHT (HORA, 2))) % 60)
FROM TABELA
3º - DIFERENÇA ENTRE HORAS CONVERTENDO PARA QUANTIDADE DE MINUTOS
SELECT
ISNULL(DATEDIFF(Mi,'2011-12-01 02:05:00','2011-12-01 10:15:00'),0)
SERÁ EXIBIDA A QTD DE MINUTOS NESTE INTERVALO QUE É DE 490 MINUTOS.
4º - CONVERTER MINUTOS NO FORMATO HH:MM
DECLARE @TMINUTOS INT
SET @TMINUTOS=ISNULL(DATEDIFF(Mi,'2011-12-01 02:05:00','2011-12-01 10:15:00'),0)
SELECT RIGHT('0' + CAST((@TMINUTOS / 60) As VARCHAR(2)),2) + ':' + RIGHT('0' + CAST((@TMINUTOS % 60) As VARCHAR(2)),2)
- O RESULTADO A SER EXIBIDO É 08:10 QUE É A DIFERENÇA DOS HORÁRIOS ACIMA MENCIONADOS.
Até o próximo artigo.