计算具有SQL Server日期时间的位置的总时间

时间:2014-09-23 08:37:21

标签: sql datetime sql-server-2012 sum

我是SQL新手,我想知道是否有可能实现以下目标。

使用SQL Server 2012我想找到给定实体在一个位置花费的总时间(以分钟为单位)。每个实体有多个条目,因为它们可能在白天多次进出一个给定的位置,我只想找到在给定位置花费的所有时间所花费的总时间。

该表格有两个显示datetimeStarttime的{​​{1}}列,以及位置ID和实体ID。

我已经设法找到一种方法来计算EndtimeStarttime之间的时间差异,但是我希望将该位置中所有这些事件的总和显示为总时间。

如果我需要提供更多信息,请告诉我

2 个答案:

答案 0 :(得分:2)

您需要做的是计算实体花费时间的位置之间的日期差异,如下所示

SELECT
*
FROM MyTable

结果值

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

使用以下查询获得所需的结果

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

结果值为

TotalTimeSpentInMinutes LocationID
0                       1
120                     2
360                     3
420                     8

答案 1 :(得分:1)

select LocationId , SUM(DATEDIFF(MINUTE, StartTime,EndTime))
from locationdatetime
group by LocationId

enter image description here