【发布时间】:2018-07-27 11:14:14
【问题描述】:
我希望获取过去 3 个工作日内发生的所有数据。
如果今天是星期一,我希望我的查询提取上周星期三、星期四和星期五发生的数据。
如果是星期二,则提取星期四、星期五和星期一发生的数据。
如果是星期三,请在星期五、星期一、星期二拉。等等。
这是我迄今为止在 WHERE 语句中的内容,但我知道这是不正确的。
AND CASE
WHEN DATENAME(DW, GETDATE()) = 'Monday' THEN CAST(PE.SchedDt AS DATE) BETWEEN DATEADD(DAY,-5,CAST(GETDATE()AS DATE)) AND DATEADD(DAY,-3,CAST(GETDATE()AS DATE))
WHEN DATENAME(DW, GETDATE()) = 'Tuesday' THEN CAST(PE.SchedDt AS DATE) BETWEEN DATEADD(DAY,-5,CAST(GETDATE()AS DATE)) AND DATEADD(DAY,-1,CAST(GETDATE()AS DATE))
WHEN DATENAME(DW, GETDATE()) = 'Wednesday' THEN CAST(PE.SchedDt AS DATE) BETWEEN DATEADD(DAY,-5,CAST(GETDATE()AS DATE)) AND DATEADD(DAY,-2,CAST(GETDATE()AS DATE))
ELSE CAST(PE.SchedDt AS DATE) BETWEEN DATEADD(DAY,-3,CAST(GETDATE()AS DATE)) AND DATEADD(DAY,-1,CAST(GETDATE()AS DATE))
END
非常感谢任何帮助!
【问题讨论】:
-
我正在使用 Microsoft SQL Server Management Studio 2017
标签: sql sql-server date tsql