sql >> Databasteknik >  >> RDS >> Sqlserver

Beräkna summan av Datetime i TT:MM:SS i sql

Jag tror att du tänkte konvertera till tid (eller datumtid om din version av SQL Server inte stöder det), snarare än varchar.

Men det här är ett väldigt dåligt sätt att göra detta på. 25:01:01 kommer inte att vara en giltig datumtid. Du bör summera sekunderna (som föreslås i ett annat svar) och sedan formatera resultaten som du vill i slutet.

Så, i din första fråga, inkludera en annan kolumn som är varaktigheten i sekunder:

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

Sedan i den andra frågan formaterar du bara SUMMA([Ticket Type Seconds]), kanske så här:

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

Det ger dig timmarna (som kan vara mer än 24), sammanlänkade med ':MM:SS'-delen av datetime som du får när du konverterar sekunderna (läggs till 0-datumet:19000101 00:00:00) till datumtid.



  1. Hämtar data från MySQL - endast inloggad användare

  2. kan inte ansluta till mysql docker från lokalt

  3. MySQL med specialtecken i json-sökvägen

  4. Konstruera MySQL-fråga (meta_key/meta_value-tabell)