select * from [Log] where [ID] is not null and [Class] = '周计划' and DATEPART(year, [AddDay]) between 2000 and 2005 and CASE when DATEPART(year, [AddDay]) =2000 then DATEPART(week, [AddDay]) >=5 when DATEPART(year, [AddDay]) =2005 then DATEPART(week, [AddDay]) <=25 end order by AddDay desc 这样行吗?
where cast(year([AddDay]) as varchar(4))+replicate(0,2-len(datepart(week,[AddDay])))+cast(datepart(week,[AddDay]) as varchar(2)) between '200005' and '200425'
where [ID] is not null
and [Class] = '周计划'
and DATEName(year, [AddDay]) + DATEname(week, [AddDay]) between 20005 and 200425
order by AddDay desc沒測試