sql-server - 如何查找从今天开始的同一工作日值的过去 4 周

我正在尝试选择今天和过去 4 周每周同一天的记录。

  1. 今天(星期二)
  2. 上周二
  3. 之前的星期二
  4. 之前的星期二

我需要将其与当前日期相关联,因为我每天都会运行此查询,所以我不想使用介于两者之间或我手动指定日期范围的东西。

到目前为止,我发现或尝试过的所有方法都提取了上个月的数据,但没有提取同一工作日的最后 4 周的数据。

select *
from table
where thedatecolumn >= DATEADD(mm, -1, GETDATE())

这可行,但会提取上个月的所有内容。

如果今天的日期是 7/10/2019 我需要

Data from 7/10/2019
Data from 7/3/2019
Data from 6/26/2019
Data from 6/19/2019

我每天都会运行此查询,因此我需要它是基于当前日期的动态查询。

最佳答案

我相信您想回顾 21 天,然后过滤那些星期几相同的日期:

select * from table
where thedatecolumn >= DATEADD(DAY, -21, CAST(GETDATE() AS DATE))
    and DATEPART(WEEKDAY, thedatecolumn) = DATEPART(WEEKDAY, GETDATE())

https://stackoverflow.com/questions/56978978/

相关文章:

angular - 上传 PUT 请求由 Angular ServiceWorker 发送两次

laravel - 安装后如何使用 npm 包 (chart.js)?

reactjs - 如何将 MenuItem 用作 NavLink?

angular - 自动滚动 onkeydown 即使没有必要

assembly - 如何在 GDB 控制台中设置 "info registers"中的变量 rip

c# - Visual Studio 2019 不在 Mac 上强调错误

node.js - 事件.js :180 throw er;//Unhandled 'error'

spring - 无法解析 OpenID 配置 spring boot(安全)java.net.Co

python - 在多处理模块中使用 Pool 修改全局变量

r - 从 R Survey 包运行 svymean 时,我可以得到 unwtd.count 吗?