SQL Select语句返回来自同一个表的下一个日期时间的分钟差异

时间:2015-06-19 14:39:27

标签: sql sql-server datetime

我有一个用户活动表。我想在几分钟内看到每个过程之间的差异。 这里更具体的是表格中的部分数据。

Date                |TranType|   Prod          |    Loc
-----------------------------------------------------------
02/27/12 3:17:21 PM | PICK   | LIrishGreenXL   |     E01C015
02/27/12 3:18:18 PM | PICK   | LAntHeliconiaS  |     E01A126
02/27/12 3:19:00 PM | PICK   | LAntHeliconiaL  |     E01A128
02/27/12 3:19:07 PM | PICK   | LAntHeliconiaXL |     E01A129 

我想检索第一个和第二个过程之间的分钟数,而不是第二个和第三个...... 谢谢

1 个答案:

答案 0 :(得分:1)

这样的东西可以在MS SQL中使用,只需更改字段名称以匹配您的:

select a.ActionDate, datediff(minute,a.ActionDate,b.ActionDate) as DiffMin

(select ROW_NUMBER() OVER(ORDER BY ActionDate) AS Row, ActionDate
from [dbo].[Attendance]) a

inner join 

(select ROW_NUMBER() OVER(ORDER BY ActionDate) AS Row, ActionDate
from [dbo].[Attendance]) b

on a.Row +1  = b.Row