获取“两天前”日期 sql 服务器

Getting “before two days” date sql server

我想从当前日期开始前两天,那个日期不应该是周六和周日,今天是 2021 年 7 月 1 日,所以我需要获取 2021 年 6 月 30 日和 2021 年 6 月 29 日的数据,那天不应该是周六和星期天。

使用CASE表达式:

SELECT CASE DATEPART(dw, GETDATE())
       WHEN 2 THEN DATEADD(day, -3, GETDATE())  -- Monday becomes Friday
       WHEN 3 THEN DATEADD(day, -4, GETDATE())  -- Tuesday becomes Friday
       ELSE DATEADD(day, -2, GETDATE())         -- otherwise roll back 2 days
       END;

以上答案假定服务器设置将星期日作为第 1 天,星期一作为第 2 天,...,星期六作为第 7 天。如果没有这个假设,我的答案可能毫无价值.