Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Calcular soma de data e hora em HH:MM:SS no sql


Acho que você pretendia converter para time (ou datetime, se sua versão do SQL Server não for compatível), em vez de varchar.

Mas, esta é uma maneira muito ruim de fazer isso. 25:01:01 não será um datetime válido. Você deve somar os segundos (como sugerido em outra resposta) e formatar os resultados como desejar no final.

Então, em sua primeira consulta, inclua outra coluna que seja a duração em segundos:
, DateDiff(s,[Start Date] , [End Date]) as [Ticket Type Seconds]

Então, na segunda consulta, apenas formate o SUM([Ticket Type Seconds]), talvez assim:
STR(SUM([Ticket Type Seconds])/3600) 
+ RIGHT(CONVERT(char(8),DATEADD(s,SUM([Ticket Type Seconds]),0),108),6)

Isso fornece as horas (que podem ser mais de 24), concatenadas com a parte ':MM:SS' da data e hora que você obtém quando converte os segundos (adicionado à data 0:19000101 00:00:00) para data hora.