SELECT *
FROM TABLE TB
WHERE TB.DATE >= dateadd(day, 1-datepart(dw, getdate()), CONVERT(date,getdate()))
AND TB.DATE < dateadd(day, 8-datepart(dw, getdate()), CONVERT(date,getdate()))
我的日期如下:2015-01-19 00:00:00
目前我的查询没有返回任何记录。我想从本周返回记录。从周一到周日创造的任何东西。
我正在使用SQL Server 10.50.1617
答案 0 :(得分:4)
试试这个,它会发现本周从星期一到星期天的所有数据:
SELECT *
FROM TABLE TB
WHERE
TB.DATE >= dateadd(d, 0, datediff(d, 0, current_timestamp)/7*7)
AND TB.DATE < dateadd(d, 7, datediff(d, 0, current_timestamp)/7*7)
答案 1 :(得分:0)
这将适用于当周星期一至星期日:
SELECT *
FROM TABLE TB
WHERE TB.DATE >= (DATEADD(day, DATEDIFF(day, 1, getdate()) / 7 * 7, - 0))
AND TB.DATE <= DATEADD(dd,DATEDIFF(dd,0,getdate())+ 1 , + 2)
这将在周一至周日前一周给你:
SELECT *
FROM TABLE TB
WHERE TB.DATE >= DATEADD(wk, DATEDIFF(wk, 6, GETDATE())-1, 7)
AND TB.DATE <= (DATEADD(day, DATEDIFF(day, 1, getdate()) / 7 * 7, - 1))