首页 > 解决方案 > 如何在 SQL Server 中比较具有相同 ID 的不同行之间的两个日期时间值?

问题描述

我想比较来自共享参考号的不同行的两个日期时间值。具有相同引用的两个日期时间值始终来自同一天,因此预期结果是一列,其中包含在每行的日期时间与表中具有相同引用的第一行之间经过的小时、分钟和秒数.

问题是通常有两个以上的行具有相同的引用,我总是需要从每行的日期时间中减去可用于该引用的最早日期时间。

我怎么能在 SQL Server 中做到这一点?

此致

标签: sqlsql-serverdatetime

解决方案


您只需使用窗口函数。像这样的东西:

select t.*,
       datediff(second, min(dt_col) over (partition by ref), dt_col) as time_in_seconds
from t;

您的问题似乎不是关于将结果格式化为时间,所以这只是将值返回为秒。


推荐阅读