获取“两天前”日期 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 天。如果没有这个假设,我的答案可能毫无价值.
我想从当前日期开始前两天,那个日期不应该是周六和周日,今天是 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 天。如果没有这个假设,我的答案可能毫无价值.