当从当前记录中输入记录当前日期的表中,我想要记录.
我努力了:
SELECT PId,WorkDate,Hours,EmpId FROM Acb WHERE EmpId=@EmpId AND WorkDate BETWEEN DATEADD(DAY,-7,GETDATE()) AND GETDATE()
解决方法
像这样做:
SET DATEFIRST 1 -- Define beginning of week as Monday SELECT [...] AND WorkDate >= dateadd(day,1-datepart(dw,getdate()),CONVERT(date,getdate())) AND WorkDate < dateadd(day,8-datepart(dw,getdate()))
说明:
> datepart(dw,getdate())将返回当前星期的数字,从1到7,从您使用SET DATEFIRST指定的任何值开始.> dateadd(day,getdate())减去到达本周开始的必要天数> CONVERT(date,getdate())用于删除GETDATE()的时间部分,因为您希望数据从午夜开始.