Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Oblicz sumę daty i godziny w GG:MM:SS w sql

Myślę, że chciałeś przekonwertować na czas (lub datetime, jeśli twoja wersja SQL Server go nie obsługuje), a nie varchar.

Ale to bardzo zły sposób na zrobienie tego. 25:01:01 nie będzie prawidłową datą i godziną. Powinieneś podsumować sekundy (zgodnie z sugestią w innej odpowiedzi), a następnie na końcu sformatować wyniki, jak chcesz.

Tak więc w pierwszym zapytaniu uwzględnij kolejną kolumnę z czasem trwania w sekundach:

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

Następnie w drugim zapytaniu po prostu sformatuj SUM([Ticket Type Seconds]), być może tak:

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

Daje to godziny (które mogą być większe niż 24) połączone z częścią „:MM:SS” daty i godziny, którą otrzymujesz po przekonwertowaniu sekund (dodanych do daty 0:19000101 00:00:00) na data i godzina.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ukrywanie baz danych do logowania w Microsoft Sql Server 2008R2 i nowszych

  2. Liczenie liczby wierszy zwróconych przez zapytanie wybierające

  3. Jak używać sortowania (Order By) w instrukcji Select w SQL Server — samouczek SQL Server / TSQL, część 109

  4. Isoweek w SQL Server 2005

  5. Raport SQL suma po roku, szukający eleganckiego rozwiązania