【问题标题】: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,但我不一定要寻找持续时间。我也尝试过使用行号进行分区,但有些情况下可能有两行具有相同的开始日期。

标签: sql sql-server datetime


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    相关资源
    最近更新 更多