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

Obliczanie całkowitego czasu w miejscu z datą i godziną serwera SQL Server

Musisz obliczyć różnicę dat między lokalizacjami, w których podmiot spędził czas, jak poniżej

SELECT
*
FROM MyTable

Wartości wyników

Starttime               Endtime                 LocationID  EntityID
2014-09-23 14:07:43     2014-09-23 16:07:43     2           2
2014-09-23 14:09:03     2014-09-23 20:09:03     3           2
2014-09-23 14:09:51     2014-09-23 21:09:51     8           2
2014-09-23 14:15:10     2014-09-23 21:15:10     8           3
2014-09-23 14:15:16     2014-09-23 17:15:16     8           3
2014-09-23 14:15:23     2014-09-23 22:15:23     4           3
2014-09-23 14:15:32     2014-09-23 15:15:32     5           3
2014-09-23 14:06:26     2014-09-23 14:06:26     1           2

Użyj poniższego zapytania, aby uzyskać pożądany wynik

SELECT
    DATEDIFF(MINUTE, MIN(Starttime), MAX(Endtime)) TotalTimeSpentInMinutes,
    LocationID
FROM MyTable
WHERE EntityID = 2
GROUP BY LocationID

Wartości wynikowe byłyby

TotalTimeSpentInMinutes LocationID
0                       1
120                     2
360                     3
420                     8


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dołącz wyniki z dwóch zapytań i wyprowadź jako pojedynczą tabelę

  2. Wydajnie wybieraj losowe wiersze z dużego zestawu wyników za pomocą LINQ (ala TABLESAMPLE)

  3. Jak grupujesz według dowolnego przedziału czasowego?

  4. Pakiet SSIS nie chce pobierać metadanych tabeli tymczasowej

  5. kwerenda sql do dynamicznego dodawania miesiąca obrachunkowego za pomocą funkcji pivot