以下是设置: 我有一张桌子 ID 雇员 ContractStartDate ContractEndDate
我试着找到上周工作的所有员工,上周是 星期一(2016年4月11日)和星期五(2016年4月15日)
运行的最佳查询是什么? 我有一个大型数据库。
答案 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