Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Berechnen Sie die Summe von Datetime in HH:MM:SS in SQL

Ich denke, Sie wollten in time (oder datetime, wenn Ihre Version von SQL Server dies nicht unterstützt) statt in varchar konvertieren.

Aber das ist ein sehr schlechter Weg, dies zu tun. 25:01:01 ist keine gültige Datumszeit. Sie sollten die Sekunden zusammenfassen (wie in einer anderen Antwort vorgeschlagen) und die Ergebnisse am Ende nach Belieben formatieren.

Fügen Sie also in Ihre erste Abfrage eine weitere Spalte mit der Dauer in Sekunden ein:

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

Dann formatieren Sie in der zweiten Abfrage einfach SUM([Ticket Type Seconds]), vielleicht so:

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

Das gibt Ihnen die Stunden (die mehr als 24 sein können), verkettet mit dem ':MM:SS'-Teil der Datumszeit, die Sie erhalten, wenn Sie die Sekunden (hinzugefügt zum 0-Datum:19000101 00:00:00) umwandeln DatumUhrzeit.