जैसा कि टिप्पणियों में बताया गया है, आप टाइमस्टैम्प को -
. से घटा नहीं सकते ऑपरेटर। DATEDIFF
का उपयोग करें इसके बजाय कार्य करें। वर्तमान पंक्ति और अगली पंक्ति के टाइमस्टैम्प का अंतर प्राप्त करने के लिए, OUTER APPLY
का उपयोग करें ।
select t2._number,t2._timestamp,
datediff(microsecond,t2._timestamp,t1._timestamp) as diff
from dbo.tbl t2
outer apply (select t1._timestamp
from dbo.tcp t1
where t1._number = t2._number + 1) t1
संपादित करें:update
ओपी की टिप्पणी के अनुसार भिन्न नाम का एक कॉलम,
with cte as (
select t2._number,t2._timestamp, t2.diff,
datediff(microsecond,t2._timestamp,t1._timestamp) as diff_col
from t t2
outer apply (select t1._timestamp
from t t1
where t1._number = t2._number + 1) t1
)
update cte set diff=diff_col;