>CREATE CURSOR junk(date t,nSeconds n(4)) >INSERT INTO junk values({^2019-02-08 01:25:28 AM}, 0) >INSERT INTO junk values({^2019-02-08 01:25:29 AM}, 0) >INSERT INTO junk values({^2019-02-08 01:25:55 AM}, 0) >INSERT INTO junk values({^2019-02-09 02:28:29 AM}, 0) >INSERT INTO junk values({^2019-02-09 02:50:18 AM}, 0) >INSERT INTO junk values({^2019-02-09 08:59:17 PM}, 0) >INSERT INTO junk values({^2019-02-09 10:25:39 PM}, 0) >INSERT INTO junk values({^2019-02-12 03:05:19 AM}, 0) > >>
>AA={^2019-02-08 01:25:29 AM}-{^2019-02-08 01:25:28 AM} && 1 Second
>
>declare @minDate Datetime select @minDate = min([date]) from sample; with tmp (date, nSeconds) as ( select [date], case when [date] = @minDate then 0 else datediff(second, LAG([date], 1,0) over (order by [date]), [date]) end from sample ) update sample set nSeconds = tmp.nSeconds from tmp where sample.[date] = tmp.[date];Here is a demo:
with tmp ([date], rcNo) as ( select [date], row_number() over (order by [date]) from sample ), secs ([date], [seconds]) as ( select t1.[date], datediff(second,t2.[date], t1.[date]) from tmp t1 left join tmp t2 on t1.rcNo = t2.rcNo+1 ) update sample set nSeconds = secs.[seconds] from secs where secs.[date] = sample.[date];Sample: