【发布时间】:2017-08-11 23:55:08
【问题描述】:
我想从_timestamp列的第二行的值中减去第一行的值(如下所示)。 _number 是我数据中的排序列。
并将结果放入名为 diff 的新列中。我用下面的查询试过了
use dbtest
select
t2._number, t2._timestamp,
coalesce(t2._timestamp - (select t1._timestamp from dbo.tcp t1
where t1._number = t2._number + 1), t2._timestamp) as diff
from
dbo.tbl t2
但我收到以下错误。
消息 8117,第 16 层,状态 1,第 4 行
操作数数据类型 datetime2 对减法运算符无效。
任何提示将不胜感激。我有一个巨大的记录,我想自动将它应用于整个列。我使用的是 SQL Sever 2008。
【问题讨论】:
-
查看datediff函数msdn.microsoft.com/en-us/library/ms189794.aspx
-
使用 datediff msdn.microsoft.com/en-us/library/ms189794.aspx 你只需要两行还是所有记录?
-
不,我想将其应用于所有记录(大约 300,000 行)
标签: sql sql-server-2008