select * from yourtable 
where cast(cast(nian as varchar)+'-'+cast(yue as varchar)+'-'+cast(ri varchar) as datetime) between '2000-1-1' and '2002-5-3'

解决方案 »

  1.   

    楼上写得很好,还有一种方法:
    select * from yourtable
    where (nian between DATEPART (yyyy,'1998-11-20') and DATEPART (yyyy,'2002-09-11'))
    and (yu between DATEPART (mm,'1998-11-20') and DATEPART (mm,'2002-09-11'))
    and (ri between DATEPART (dd,'1998-11-20') and DATEPART (dd,'2002-09-11'))
      

  2.   

    select * from yourtable 
    where nian*10000+yue*100+ri between
     year('2000-1-1')*10000+month('2000-1-1')*100+day('2000-1-1')  and 
     year('2002-5-3')*10000+month('2002-5-3')*100+day('2002-5-3')