You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server如何实现排除周末的前一工作日日期查询

调整后可排除周末的SQL查询方案

核心逻辑说明

  • 依赖SQL Server内置的DATEPART(WEEKDAY, date)函数判断当前日期是周几
  • 若当前为周一(默认区域配置下DATEPART(WEEKDAY, GETDATE())返回值为2),日期偏移量设为-3,取3天前的上周五数据
  • 其余工作日日期偏移量设为-1,取前一天的工作日数据

完整SQL语句

SELECT * 
FROM MyTable
WHERE
CAST(MyTable.DATE AS DATE) = DATEADD(
    day,
    CASE WHEN DATEPART(WEEKDAY, CAST(GETDATE() AS DATE)) = 2 THEN -3 ELSE -1 END,
    CAST(GETDATE() AS date)
)

注意事项

如果你的数据库实例配置的星期起始日不是周日,可以先执行SELECT @@DATEFIRST确认当前星期起始值,再对应调整CASE语句的判断数值即可。

内容的提问来源于stack exchange,提问作者wysouf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 05:15:03