Sql server 返回本周的记录

Sql server 返回本周的记录,sql-server,tsql,Sql Server,Tsql,我的约会日期是这样的:2015-01-19 00:00:00 目前我的查询没有返回任何记录。我想归还本周的唱片。从周一到周日创建的任何内容 我正在使用SQL Server 10.50.1617试试这个,它会找到本周从周一到周日的所有数据: SELECT * FROM TABLE TB WHERE TB.DATE >= dateadd(day, 1-datepart(dw, getdate()), CONVERT(date,getdate())) AND TB.DATE < dat

我的约会日期是这样的:2015-01-19 00:00:00

目前我的查询没有返回任何记录。我想归还本周的唱片。从周一到周日创建的任何内容


我正在使用SQL Server 10.50.1617

试试这个,它会找到本周从周一到周日的所有数据:

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()))

本周周一至周日有效:

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)
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(d, 0, datediff(d, 0, current_timestamp)/7*7)
  AND TB.DATE <  dateadd(d, 7, datediff(d, 0, current_timestamp)/7*7)
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)

您是否关心TB.DATE列的时间部分?如果不是,则将CASTTB.DATE作为DATEADDWEEK,-1,GETDATE和GETDATE之间的日期就足够了。我的数据没有时间。。。它总是00:00:00尝试我的上述建议,看看这是否适合你。如前所述,它将检查今天一周内的日期。创建两个变量,将其设置为开始日期和结束日期。选择它们,以便查看值。然后手动运行带有实际日期的脚本,查看是否返回值。这就是你要解决的问题。采取措施。数据不会显示。。。它不起作用。TB.DATE