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

Beregn summen af ​​Datetime i TT:MM:SS i sql

Jeg tror, ​​du har tænkt dig at konvertere til tid (eller datotid, hvis din version af SQL Server ikke understøtter det), i stedet for varchar.

Men det er en meget dårlig måde at gøre dette på. 25:01:01 vil ikke være et gyldigt dato og klokkeslæt. Du bør opsummere sekunderne (som foreslået i et andet svar), og derefter formatere resultaterne som du vil til sidst.

Så medtag en anden kolonne i din første forespørgsel, der er varigheden i sekunder:

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

I den anden forespørgsel skal du bare formatere SUM([Billettype sekunder]), måske sådan her:

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

Det giver dig timerne (der kan være mere end 24), sammenkædet med ':MM:SS'-delen af ​​datetime, som du får, når du konverterer sekunderne (føjet til 0-datoen:19000101 00:00:00) til datotid.



  1. Læs XML-dokument gemt i SQL Server 2008 R2 med XML-datatype

  2. Oracle Konverter sekunder til timer:minutter:sekunder

  3. hvordan kan jeg udføre CMD-kommandoen i c#-konsolapplikationen?

  4. Bevilling på flere databaser. MySQL