set language N'Simplified Chinese' select dateadd( 1- datename(weekday, getdate()),cast(convert(varchar(10),getdate(),120) as datetime), dateadd( 8- datename(weekday, getdate()),cast(convert(varchar(10),getdate(),120) as datetime)在家没试过 where 日期 between 上面的查询应该可以了
看你如何界定星期日,以下供参考select * from 考勤 where 日期 between GETDATE()-5-datepart(dw,GETDATE()) and GETDATE()+1-datepart(dw,GETDATE())
联机帮助t 参:SET DATEFIRST
SET DATEFIRST 1请问写在什么地方啊
select * from 考勤 where datediff(week,日期,getdate())=1
select * from 考勤 where isworkday(日期) 编写 isworkday()函数即可
select * from 考勤 where lastweek(today) 编写lastweek()函数
select * from 考勤 where 日期 between convert(nvarchar(10),getdate()-datepart(WEEKDAY,getdate()-5),120) and convert(nvarchar(10),getdate()-datepart(WEEKDAY,getdate()),120)convert(nvarchar(10),getdate()-datepart(WEEKDAY,getdate()-5),120)上周一 convert(nvarchar(10),getdate()-datepart(WEEKDAY,getdate()),120)上周六
select * from 考勤 where DATEPART(WEEKDAY,getdate()) <8 and DATEPART(WEEKDAY,getdate()) > 1
set language N'Simplified Chinese'
select dateadd( 1- datename(weekday, getdate()),cast(convert(varchar(10),getdate(),120) as datetime), dateadd( 8- datename(weekday, getdate()),cast(convert(varchar(10),getdate(),120) as datetime)在家没试过 where 日期 between
上面的查询应该可以了
参:SET DATEFIRST
select * from 考勤 where datediff(week,日期,getdate())=1
编写 isworkday()函数即可
编写lastweek()函数
where 日期 between convert(nvarchar(10),getdate()-datepart(WEEKDAY,getdate()-5),120)
and convert(nvarchar(10),getdate()-datepart(WEEKDAY,getdate()),120)convert(nvarchar(10),getdate()-datepart(WEEKDAY,getdate()-5),120)上周一
convert(nvarchar(10),getdate()-datepart(WEEKDAY,getdate()),120)上周六