sql >> Database >  >> RDS >> Sqlserver

Bereken de som van datumtijd in UU:MM:SS in sql

Ik denk dat je bedoelde om te converteren naar tijd (of datetime als je versie van SQL Server dit niet ondersteunt), in plaats van varchar.

Maar dit is een zeer slechte manier om dit te doen. 25:01:01 is geen geldige datetime. U moet de seconden optellen (zoals voorgesteld in een ander antwoord) en vervolgens de resultaten aan het einde opmaken zoals u wilt.

Neem dus in uw eerste zoekopdracht een andere kolom op met de duur in seconden:

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

Formatteer vervolgens in de tweede query de SUM ([Ticket Type Seconds]), misschien als volgt:

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

Dat geeft je de uren (die meer dan 24 kunnen zijn), aaneengeschakeld met het ':MM:SS'-gedeelte van de datetime die je krijgt als je de seconden (toegevoegd aan de 0-datum:19000101 00:00:00) naar datumtijd.



  1. Snelste manier om een ​​miljoen rijen in Oracle in te voegen

  2. Postgre SQL negeert de filtervoorwaarde als de waarde null is

  3. FILE_ID() versus FILE_IDEX() in SQL Server:wat is het verschil?

  4. WebSecurity.CreateAccount mislukt voor MySQL