计算与日期范围相关的天数列
Posted
技术标签:
【中文标题】计算与日期范围相关的天数列【英文标题】:Calculate Day Number Column in Relation to Date Range 【发布时间】:2021-01-18 22:44:18 【问题描述】:我正在尝试获取 StartDate 相对于 EndDate 的天数作为临时表中的列。所以 12/16 是第一天,12/17 是第二天,以此类推。
当前:
ID | StartDate | EndDate |
---|---|---|
01 | 2020/12/16 | 2020/12/18 |
02 | 2020/12/17 | 2020/12/18 |
03 | 2020/12/18 | 2020/12/18 |
需要的结果:
ID | StartDate | EndDate | Day in Range |
---|---|---|---|
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 中做吗?
【问题讨论】:
你做了哪些研究?你试过什么?你在哪里卡住了? 到目前为止,我已经尝试过使用 datediff,但我不一定要寻找持续时间。我也尝试过使用行号进行分区,但有些情况下可能有两行具有相同的开始日期。 【参考方案1】:嗯。 . .这是你想要的吗?
select t.*,
datediff(day, min(startdate) over (partition by enddate), startdate) + 1
from t;
这将返回当前行的开始日期与与该结束日期关联的最早开始日期之间的差异。
【讨论】:
以上是关于计算与日期范围相关的天数列的主要内容,如果未能解决你的问题,请参考以下文章