Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Berechnen der Gesamtzeit an einem Ort mit SQL Server datetime

Was Sie tun müssen, ist die Datumsdifferenz zwischen den Orten zu berechnen, an denen die Entität Zeit verbracht hat, wie unten gezeigt

SELECT
*
FROM MyTable

Ergebniswerte

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

Verwenden Sie die folgende Abfrage, um das gewünschte Ergebnis zu erhalten

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

Ergebniswerte wären

TotalTimeSpentInMinutes LocationID
0                       1
120                     2
360                     3
420                     8