MSSQL从一开始就查找每周记录&结束日期

时间:2016-04-15 09:47:45

标签: sql sql-server

以下是设置: 我有一张桌子 ID 雇员 ContractStartDate ContractEndDate

我试着找到上周工作的所有员工,上周是 星期一(2016年4月11日)和星期五(2016年4月15日)

运行的最佳查询是什么? 我有一个大型数据库。

1 个答案:

答案 0 :(得分:0)

尝试类似......

上周的开始和结束

Select * From TableName 
WHERE ContractStartDate >= DATEADD(WEEK, DATEDIFF(WEEK, 6, GETDATE()), 0)
 AND  ContractEndDate   <  DATEADD(WEEK, DATEDIFF(WEEK, 6, GETDATE()), 6)

本周的开始和结束

Select * From TableName 
WHERE ContractStartDate >= DATEADD(WEEK, DATEDIFF(WEEK, 0, GETDATE()), 0) 
 AND  ContractEndDate   <  DATEADD(WEEK, DATEDIFF(WEEK, 0, GETDATE()), 0) + 5