SQL组合两列并选择连续行的最大时间beetwen

时间:2016-05-16 13:17:40

标签: sql sql-server

我尝试组合两列,例如。 OnDateTime和OffDateTime。

OnDateTime               OffDateTime
2016-05-16 13:47:22.987 2016-05-16 13:47:22.987
2016-05-16 13:47:26.347 2016-05-16 13:47:26.347
2016-05-16 13:47:27.643 2016-05-16 13:47:27.643
2016-05-16 13:48:08.003 2016-05-17 13:48:08.003
2016-05-16 13:48:10.410 2016-08-24 13:48:10.410
2016-05-16 13:48:11.913 2016-08-24 13:48:11.913
2016-05-16 13:50:09.090 2019-02-09 13:50:09.090

我想将这两个列合并为一个例如。时间,然后由DESC订购并计算最大时间beetwen连续行(1和2,2和3 ....) 谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

这是你想要的吗?

Select Max(DateDiff(second, a.OffDateTime, b.OnDateTime))
From table a
   join table b
       on b.OnDateTime =
            (Select Min(OnDateTime)
             From table
             where OnDateTime > a.OffDateTime)

说明:

对于表a中的每一行,连接查找表中的下一个连续行(如b),然后max()函数找到行a结束和行b开始之间的最大间隔

答案 1 :(得分:-1)

Concat +减去它会给出天数差异的日期。乘以24得到小时值,依此类推......

  

select concat(date1,date2)Dates,(date1 - date2)Diff from table;

使用Max获取最大行。