【问题标题】:I want to calculate Week-Ending date for particular dates given in a separate column我想计算单独列中给出的特定日期的周末日期
【发布时间】:2019-12-12 16:04:35
【问题描述】:

我目前正在使用 SQL Server 2019。需要计算列中给定生效日期的周结束日期(每个星期日)。我正在尝试使用以下逻辑使其工作。

dateadd(dd,((datediff(dd,'17530107',GETDATE()+13)/7)*7)+7,'17530107') as Weekend_Date

期望的输出,

  • Effective Date (this date is given): Week-Ending Date (这需要计算)(期望输出) 2019 年 10 月 8 日 2019 年 10 月 13 日 2019 年 11 月 1 日 2019 年 11 月 3 日 2019 年 11 月 7 日 2019 年 11 月 10 日

【问题讨论】:

    标签: sql-server calculated-columns


    【解决方案1】:

    如果 Getdate() 是您数据库中的字段,并且星期日是第 1 周,那么这应该可以工作。

    Select dateadd (dd,(7- datepart(dw,getdate()) + 1),cast(getdate() as date))

    【讨论】:

    • 是的,Getdate () 是数据库中的字段,但星期日不一定必须是第 1 周的某一天。它可以是任何一周的星期日,具体取决于给定日期。例如,如果给定日期是 2019 年 2 月 12 日,那么星期日应该是 2019 年 8 月 12 日,给定日期是 2019 年 12 月 12 日,那么星期日应该是 2019 年 12 月 15 日,然后继续。上面的代码运行成功但没有返回任何东西。
    • 如果你运行 datepart(dw,getdate()) 你会得到什么?
    • 运行 "Select dateadd (dd,(7- datepart(dw,getdate()) + 1),cast(getdate() as date))" 获取当前日期。
    • 如果你运行 select datepart(dw,getdate()) 你会得到什么?
    • select datepart(dw,getdate()) 返回一个整数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    相关资源
    最近更新 更多