SQL Server从现在开始仅过去4周,与去年同期相同

CAR*_*CAR 10 sql-server date

我试过寻找一个解决方案,但一直无法找到.

我需要从今天的日期选择最近4周的数据,这不是我刚刚做的问题date >= Dateadd(mm, -1, getdate()).但是,我也想要与前一年相同的4周数据.但我不想(例如)2010年6月1日至30日和2011年6月1日至30日,我需要

6月30日(星期四)2011年和4周前和7月1日以及4周前7月1日是从前一年的同一周的星期四.

所以将返回8周的数据.

谢谢您的帮助!

Fos*_*sco 16

你可以使用更多的DATEADD()善良回到上一年:

where theDate >= DATEADD(mm, -1, GETDATE())    
OR
    (theDate <= DATEADD(week,-52,convert(datetime,GETDATE()))
     and
     theDate >= DATEADD(mm,-1,DATEADD(week,-52,convert(datetime,GETDATE()))))
Run Code Online (Sandbox Code Playgroud)

从2011年6月30日开始减去52周,按照您的要求减去7/1/2010 ...然后使用原来的1个月减法作为下限.

你也可以把整个东西切换成使用周......

where theDate >= DATEADD(week, -4, GETDATE())    
OR
    (theDate <= DATEADD(week,-52,convert(datetime,GETDATE()))
     and
     theDate >= DATEADD(week,-56,convert(datetime,GETDATE())))
Run Code Online (Sandbox Code Playgroud)