SQLserver获取本周周一的数据

SQLserver获取本周周一的数据

SQL 帆软用户AK9hEVlRMF 发布于 2024-9-30 09:23
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
ChazzenLv2初级互助
发布于2024-9-30 09:27(编辑于 2024-9-30 09:30)

SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()) - (DATEPART(WEEKDAY, GETDATE())+6) % 7, 0) AS Monday

  • 帆软用户AK9hEVlRMF 帆软用户AK9hEVlRMF(提问者) 这个也不是周一的日期呀
    2024-09-30 09:28 
  • Chazzen Chazzen 回复 帆软用户AK9hEVlRMF(提问者) +6可以改成+5,主要看数据库的一周是从周日开始还是开始周一开始
    2024-09-30 09:30 
最佳回答
0
0035705Lv5初级互助
发布于2024-9-30 09:23(编辑于 2024-9-30 09:26)

-- 使用 DATEPART 函数获取当前日期的周几(1 表示周日,2 表示周一,以此类推) -- 使用 DATEADD 函数计算本周周一的日期 

SELECT * FROM YourTableName WHERE YourDateColumn = DATEADD(day, -(DATEPART(weekday, GETDATE()) - 2), CAST(GETDATE() AS date));

在上述代码中,YourTableName是你的表名,YourDateColumn是包含日期的列名。

这个查询首先通过DATEPART(weekday, GETDATE())获取当前日期是一周中的周几,然后用当前日期减去相应的天数,得到本周周一的日期,最后筛选出指定列中日期为本周周一的记录。

最佳回答
0
华莉星宸Lv7资深互助
发布于2024-9-30 09:24

SELECT DATEADD(week, DATEDIFF(week, 0, GETDATE()), 0) AS MondayOfWeek;

  • 帆软用户AK9hEVlRMF 帆软用户AK9hEVlRMF(提问者) 这个比如今天是29号周日,他算出来周一是30号而不是23号
    2024-09-30 09:27 
  • 华莉星宸 华莉星宸 回复 帆软用户AK9hEVlRMF(提问者) 可以获取GETDATE()的时候,往前推一天
    2024-09-30 09:28 
  • 4关注人数
  • 178浏览人数
  • 最后回答于:2024-9-30 09:30
    请选择关闭问题的原因
    确定 取消
    返回顶部