MSSQL 计算同一列中的日期差异
MSSQL Calculate Date Difference in same column
我的数据如下:
ID DATE
1 2014-02-01 09:00:00.00
1 2014-03-01 11:00:00.00
1 2014-01-01 11:00:00.00
2 2010-12-01 05:00:00.00
2 2011-10-01 03:30:00.00
2 2012-09-01 02:40:00.00
我需要计算每一行之间的日期差异(天或小时差异都可以)。第一行可以是0,我试过:
date - coalesce(lag(date) over(order by id, date) as day_difference
daydiff(date - coalesce(lag(date) over(order by id, date)) as day_difference
两种变体都不起作用(给出不正确的语法错误)。
请帮忙。
你很接近:
datediff(day, date, coalesce(lag(date) over(order by id, date))) as day_difference
而且,您可能希望按 ID 进行分区:
datediff(day, date, coalesce(lag(date) over(partition by ID order by id, date))) as day_difference
我的数据如下:
ID DATE 1 2014-02-01 09:00:00.00 1 2014-03-01 11:00:00.00 1 2014-01-01 11:00:00.00 2 2010-12-01 05:00:00.00 2 2011-10-01 03:30:00.00 2 2012-09-01 02:40:00.00
我需要计算每一行之间的日期差异(天或小时差异都可以)。第一行可以是0,我试过:
date - coalesce(lag(date) over(order by id, date) as day_difference
daydiff(date - coalesce(lag(date) over(order by id, date)) as day_difference
两种变体都不起作用(给出不正确的语法错误)。
请帮忙。
你很接近:
datediff(day, date, coalesce(lag(date) over(order by id, date))) as day_difference
而且,您可能希望按 ID 进行分区:
datediff(day, date, coalesce(lag(date) over(partition by ID order by id, date))) as day_difference