【发布时间】:2016-10-17 17:37:21
【问题描述】:
我有一个表,其中有多个列,但我需要找到 StartTime 列的当前行与 EndTime 列的上一行之间的差异。
示例是以下输出。
Batch Number Start Time End Time Difference
100004 8:00:00 8:03:30
100005 8:05:00 8:07:00 00:01:30
100006 8:08:40 8:15:00 00:01:40
32141 8:18:00 8:22:45 00:03:00
84230 8:25:10 8:33:42 00:02:25
23444 8:40:00 8:43:00 00:06:18
100001 8:50:00 8:52:00 00:07:00
我是 SQL 新手,正在使用 SQL SERVER 2008 R2。
请帮助我获取简单选择查询中的输出。
【问题讨论】:
-
LAG() 函数的经典用法。太糟糕了,它是在 Sql Server 2012 上引入的。这里有一些想法:blog.sqlauthority.com/2011/11/24/…
-
“开始时间”和“结束时间”存储为 Varchar 还是 Datetime?
-
@Vercelli,很好,在 SQL SERVER 2008R2 中还有其他方法可以实现吗?
-
@Jatin Patel,它们存储为日期时间。
-
@Ruhaan:是的,它们在我发布的链接中进行了解释。它们有点复杂,但我建议你看看。
标签: sql sql-server sql-server-2008 sql-server-2005 sql-server-2008-r2