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

SQL组合两列并选择连续行的最大时间,sql,sql-server,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

我试着把两个栏目结合起来,例如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排序并计算连续行(1和2、2和3…)的最大时间。

谢谢你的帮助

Concat+减去将产生日差的日期。乘以24得到小时数,依此类推

从表中选择concat(date1,date2)Dates,(date1-date2)Diff


使用Max获取Max行。

这是您想要的吗

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)
说明:


Join为表a中的每一行查找表中的下一个连续行(如b),然后max()函数查找a行末尾和b行开头之间的最大间隔

结果应该是什么样的?它可能是一个值,它必须是最长的句点。所以你想找到DateDiff最高的行吗?你能在你的问题中添加给定示例数据的输出是什么样子的吗。“连续行之间的最大时间”是什么意思?问题中使用的单词combine让我想到concat。如果没有用,则删除。简单,哈哈。我知道。我的错误。不要总是相信别人说/写的话。:)