Sql server 我想计算一个单独列中给出的特定日期的周结束日期

Sql server 我想计算一个单独列中给出的特定日期的周结束日期,sql-server,calculated-columns,Sql Server,Calculated Columns,我目前正在SQL Server 2019上工作。需要在列中计算给定生效日期的周结束日期(每个星期日)。我正在尝试使用以下逻辑使其工作 dateadd(dd,((datediff(dd,'17530107',GETDATE()+13)/7)*7)+7,'17530107') as Weekend_Date 期望输出 生效日期(给出该日期):周结束日期(需要计算)(期望输出) 2019年8月10日2019年10月13日 2019年1月11日2019年3月11日 2019年7月11日2019年10

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

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

  • 生效日期(给出该日期):周结束日期(需要计算)(期望输出) 2019年8月10日2019年10月13日 2019年1月11日2019年3月11日 2019年7月11日2019年10月11日
如果Getdate()是数据库中的字段,而Sunday是第1周的第1天,那么这应该可以工作

选择dateadd(dd,(7-datepart(dw,getdate())+1),cast(getdate()as date))
如果getdate()是数据库中的字段,并且星期日是第一周的第二天,那么这应该可以工作

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

是的,getdate()是数据库中的字段,但星期日不一定必须是第一周的某一天。根据给定的日期,它可以是任何一周的星期日。例如,如果给定日期为2019年2月12日,则周日应为2019年8月12日,给定日期为2019年12月12日,周日应为2019年12月15日,周日应为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())会返回一个整数,getdate()是数据库中的字段,但星期日不一定必须是第1周的某一天。根据给定的日期,它可以是任何一周的星期日。例如,如果给定日期为2019年2月12日,则周日应为2019年8月12日,给定日期为2019年12月12日,周日应为2019年12月15日,周日应为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())会返回一个整数