SQL - Select 在当前周数和晚三周之间

SQL - Select between current week number and three weeks behind

说到SQL,我不是很好。我正在尝试获取过去三周的数据。我可以获得当前的周数,但真的不知道如何减去它以便它返回三周并获取该时期的所有数据。

这是我当前的代码。我可以让它使用固定数字(在本例中为 42),但这不是我想要的。

输出应该是这样的:

拜托,avoid pictures of code...

也就是说,如果您使用的是 SQL 服务器,我相信您正在寻找的功能是 DATEPART。看看这是否满足您的需要:

SELECT *
FROM tblData
WHERE fldWeekNum BETWEEN DATEPART(WEEK, GETDATE())-3 AND DATEPART(WEEK, GETDATE())

编辑:

根据下面的评论,让我们尝试从当前日期减去 3 周,然后从该日期得到 WEEKDATEPART。这取决于 fldWeekNum 的计算方式,因此可能需要在此基础上进行一些额外的调整。

SELECT *
FROM tblData
WHERE fldWeekNum 
  BETWEEN 
    DATEPART(WEEK,DATEADD(WEEK, -3, GETDATE())) 
    AND 
    DATEPART(WEEK, GETDATE());