CONVERT(varchar(10),ljsj,120) select *
from xsbckup
where CONVERT(varchar(10),ljsj,120)>='2002-12-01' and CONVERT(varchar(10),ljsj,120)<='2002-12-08'

解决方案 »

  1.   

    看错!
    declare @aa datetime
    set @aa=cast('02-1-1' as datetime)
    select @aa
      

  2.   

    select *
    from xsbckup
    where CONVERT(varchar(10),cast(ljsj as datetime),120)>='2002-12-01' and CONVERT(varchar(10),cast(ljsj as datetime),120)>=<='2002-12-08'
      

  3.   

    提高效率:
    select *
    from xsbckup
    where ljsj>=right('2002-12-01',8) and ljsj<=right('2002-12-01',8)
      

  4.   

    我数据库是这样的值
    ljsj
    02-12-8 
    02-12-8 
    right('2002-12-01',8)得到'02-12-01'
      

  5.   

    declare @start varchar(10),@end varchar(10)
    set @start='2002-12-01'
    set @end='2002-12-59'
    ---------------------
    set @start=SUBSTRING(@start,1,4)+'-'+cast(cast(substring(@start,6,2) as int) as varchar)+'-'+cast(cast(substring(@start,9,2) as int)as varchar)
    set @end=SUBSTRING(@end,1,4)+'-'+cast(cast(substring(@end,6,2) as int) as varchar)+'-'+cast(cast(substring(@end,9,2) as int)as varchar)
    ------------------------
    select *
    from xsbckup
    where ljsj>=@start and ljsj<=@end