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 这样行吗?

解决方案 »

  1.   

    select * from [Log] where [ID] is not null and [Class] = '周计划' and 
    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'
      

  2.   

    select * from [Log] 
    where [ID] is not null 
    and [Class] = '周计划' 
    and DATEName(year, [AddDay]) +  DATEname(week, [AddDay]) between 20005 and 200425 
    order by AddDay desc沒測試
      

  3.   

    真夸张还有个DATEName的函数呀,哥们一直不知道