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

如何在SQL周报查询中获取上周三至本周二的日期

上周三至本周二日期的SQL获取方案

针对你需要获取上周三与本周二日期的需求,先修正你之前代码的逻辑(推测你可能是把DATEADD误写为DATEDIFF,因为DATEDIFF返回的是时间差而非具体日期),并给出适配的语句:

正确SQL语句

-- 获取上周三
DATEADD(wk, DATEDIFF(wk, 0, GETDATE()) - 1, 3)
-- 获取本周二
DATEADD(wk, DATEDIFF(wk, 0, GETDATE()), 2)

逻辑说明

  • DATEDIFF(wk, 0, GETDATE()):计算从SQL默认基准日期(1900-01-01,周日)到当前日期的总周数
  • 减1代表上一周,加上3天(周日为0,周三对应3)得到上周三
  • 当前周数加上2天(周二对应2)得到本周二

关于当前日期为本周二的问题

无需等到次日再尝试。上述语句的逻辑是基于周的固定偏移,不管当前日期是周几,都能精准定位上周三到本周二的区间。你之前调整参数未成功,大概率是偏移天数的对应关系没搞对——SQL中默认一周起始为周日,所以周日=0、周一=1、周二=2、周三=3,以此类推。

如果习惯以周一作为一周起始,可以先设置SET DATEFIRST 1;,此时周一=1,周二=2,周三=3,对应语句调整为:

SET DATEFIRST 1;
-- 获取上周三
DATEADD(wk, DATEDIFF(wk, 0, GETDATE()) - 1, 3)
-- 获取本周二
DATEADD(wk, DATEDIFF(wk, 0, GETDATE()), 2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 19:28:14