我怎样才能得到 T SQL 的最后 13 周(不包括本周)?
How can i get last 13 weeks in T SQL excluding current week?
我正在做一个项目,需要提取过去 13 周的数据。我已经在过滤器中尝试过 datediff,但它需要额外的几周时间。我已经将 datefirst 设置为 1,但仍然没有得到想要的结果。
WHERE 子句是
DATEDIFF(周,dt.date_key,getdate())<=13
我已经找到答案了。放在 where 子句下面,它按预期工作。
d.date_key
是我的日期栏。
d.date_key >= DATEADD(dd, 0, DATEADD(ww, DATEDIFF(ww, 0, DATEADD(dd, -1, GETDATE())) - 13, 0)) and d.date_key <= DATEADD(dd, 6, DATEADD(ww, DATEDIFF(ww, 0, DATEADD(dd, -1, GETDATE())) - 1, 0))
试试这个代码:
SELECT date_key FROM tbl WHERE date_key BETWEEN DATEADD(week, -13,GETDATE()) AND DATEADD(week, -1,GETDATE())
我正在做一个项目,需要提取过去 13 周的数据。我已经在过滤器中尝试过 datediff,但它需要额外的几周时间。我已经将 datefirst 设置为 1,但仍然没有得到想要的结果。
WHERE 子句是
DATEDIFF(周,dt.date_key,getdate())<=13
我已经找到答案了。放在 where 子句下面,它按预期工作。
d.date_key
是我的日期栏。
d.date_key >= DATEADD(dd, 0, DATEADD(ww, DATEDIFF(ww, 0, DATEADD(dd, -1, GETDATE())) - 13, 0)) and d.date_key <= DATEADD(dd, 6, DATEADD(ww, DATEDIFF(ww, 0, DATEADD(dd, -1, GETDATE())) - 1, 0))
试试这个代码:
SELECT date_key FROM tbl WHERE date_key BETWEEN DATEADD(week, -13,GETDATE()) AND DATEADD(week, -1,GETDATE())