Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Calcola la somma di DateTime in HH:MM:SS in sql

Penso che tu intendessi convertire in ora (o datetime se la tua versione di SQL Server non lo supporta), piuttosto che in varchar.

Ma questo è un pessimo modo per farlo. 25:01:01 non sarà una data e ora valida. Dovresti sommare i secondi (come suggerito in un'altra risposta), quindi formattare i risultati come preferisci alla fine.

Quindi, nella tua prima query, includi un'altra colonna che sia la durata in secondi:

, DateDiff(s,[Start Date] , [End Date]) as [Ticket Type Seconds]

Quindi nella seconda query, formatta semplicemente SUM([Ticket Type Seconds]), magari in questo modo:

STR(SUM([Ticket Type Seconds])/3600) 
+ RIGHT(CONVERT(char(8),DATEADD(s,SUM([Ticket Type Seconds]),0),108),6)

Questo ti dà le ore (che possono essere più di 24), concatenate con la parte ':MM:SS' di datetime che ottieni quando converti i secondi (aggiunti alla data 0:19000101 00:00:00) in data e ora.