小编mes*_*nde的帖子

SQL 将日期“舍入”到一周中的给定日期

我的公司将所有任务分组到各个周中,并在周四结束。因此,2019 年 3 月 20 日到期的任务将被分组到 3/21 周,而 3/22 到期的任务将被分组到 3/28/19 周。

我希望根据输入的到期日期计算此字段(称为 duedate_Weekdue)。

以下方法可行,但似乎不是最简单的方法。有人有更优雅的方法吗?

Select 
getdate() as duedate,
datepart(yy,getdate()) as duedate_yr,
datepart(ww,getdate()) as duedate_ww,
CASE
    When datename(dw,Dateadd(day,1,getdate()))='Thursday' Then Dateadd(day,1,getdate())
    When datename(dw,Dateadd(day,2,getdate()))='Thursday' Then Dateadd(day,2,getdate())
    When datename(dw,Dateadd(day,3,getdate()))='Thursday' Then Dateadd(day,3,getdate())
    When datename(dw,Dateadd(day,4,getdate()))='Thursday' Then Dateadd(day,4,getdate())
    When datename(dw,Dateadd(day,5,getdate()))='Thursday' Then Dateadd(day,5,getdate())
    When datename(dw,Dateadd(day,6,getdate()))='Thursday' Then Dateadd(day,6,getdate())
    When datename(dw,Dateadd(day,0,getdate()))='Thursday' Then Dateadd(day,0,getdate())
END as duedate_Weekdue;
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server date

3
推荐指数
1
解决办法
3504
查看次数

标签 统计

date ×1

sql ×1

sql-server ×1

t-sql ×1