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

SQL Server - oblicz czas, jaki upłynął między dwoma znacznikami daty i godziny w formacie GG:MM:SS

ZAKTUALIZOWANO:

Prawidłowo oblicz przedział czasu w SQL Server, nawet jeśli przekracza 24 godziny :

-- Setup test data
declare @minDate datetime = '2012-12-12 20:16:47.160'
declare @maxDate datetime = '2012-12-13 15:10:12.050'

-- Get timespan in hh:mi:ss
select cast(
        (cast(cast(@maxDate as float) - cast(@minDate as float) as int) * 24) /* hours over 24 */
        + datepart(hh, @maxDate - @minDate) /* hours */
        as varchar(10))
    + ':' + right('0' + cast(datepart(mi, @maxDate - @minDate) as varchar(2)), 2) /* minutes */
    + ':' + right('0' + cast(datepart(ss, @maxDate - @minDate) as varchar(2)), 2) /* seconds */

-- Returns 18:53:24

Szczególnie mile widziane są przypadki Edge, które wykazują niedokładność!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zmienić nazwę klucza JSON w SQL Server (T-SQL)

  2. SQL Server:SUM() wielu wierszy, w tym klauzule where

  3. Rozwiązania DevOps do automatyzacji tworzenia baz danych

  4. Przenoszenie systemowych baz danych w klastrze pracy awaryjnej programu SQL Server

  5. Jak zaimportować plik bak do SQL Server Express