当只有一个日期时计算日期差异

Nei*_*ght 0 sql-server-2008-r2 date-format

我有 2 条记录,一条是停止时钟停止的详细信息,另一条是开始的。我在每条记录中只有一个日期值。我正在尝试找出停止日期和开始日期之间的差异。我正在寻找指针。我想通过做这样的事情:

SELECT e1.ID, MIN(e1.EventTime) AS [StopTotalMinutes]
          ,MAX(e2.EventTime) AS [StartTotalMinutes]
  FROM event AS e1
  JOIN event AS e2
    ON e1.ID = e2.ID
Run Code Online (Sandbox Code Playgroud)

我本来可以解决一些问题,但我失败了。

所以,表和一些样本数据是:

ID    |    EventTime     |   Action
1       2012-01-01 10:00      Stop
1       2012-01-01 13:31     Start
1       2012-01-03 09:45      Stop
2       2012-01-01 11:12      Stop
2       2012-01-10 15:35     Start
2       2012-01-11 08:39      Stop
Run Code Online (Sandbox Code Playgroud)

Lam*_*mak 6

这应该这样做:

SELECT e1.ID, DATEDIFF(MINUTE,e1.EventTime,e2.EventTime) [Minutes]
FROM (SELECT * FROM event WHERE Action = 'Start') AS e1
LEFT JOIN (SELECT * FROM event WHERE Action = 'Stop') AS e2
ON e1.ID = e2.ID 
Run Code Online (Sandbox Code Playgroud)