首页 > 解决方案 > 计算与日期范围相关的天数列

问题描述

我试图将 StartDate 与 EndDate 相关的天数作为临时表中的列。所以 12/16 是第一天,12/17 是第二天,以此类推。

当前的:

ID 开始日期 结束日期
01 2020/12/16 2020/12/18
02 2020/12/17 2020/12/18
03 2020/12/18 2020/12/18

需要的结果:

ID 开始日期 结束日期 范围内的一天
01 2020/12/16 2020/12/18 1
02 2020/12/17 2020/12/18 2
03 2020/12/18 2020/12/18 3

可以在 SQL Server 中进行吗?

标签: sqlsql-serverdatetime

解决方案


嗯。. . 这是你想要的吗?

select t.*,
       datediff(day, min(startdate) over (partition by enddate), startdate) + 1
from t;

这将返回当前行的开始日期与与该结束日期关联的最早开始日期之间的差异。


推荐阅读