select convert(int,substring(convert(varchar(10),getdate(),120),1,4)+substring(convert(varchar(10),getdate(),120),6,2)) > 200605

解决方案 »

  1.   

    --select 列表中不能用比较表达式,可以变通使用case when--如:declare @int intset @int = convert(int,substring(convert(varchar(10),getdate(),120),1,4)+substring(convert(varchar(10),getdate(),120),6,2))select case when @int > 200605 then 'true' else 'false' end
      

  2.   

    --当然可以select case when convert(int,substring(convert(varchar(10),getdate(),120),1,4)+substring(convert(varchar(10),getdate(),120),6,2)) > 200605 then 'true' else 'false' end
      

  3.   

    select * from table
    where cast(substring(convert(char(6),getdate(),112),1,6) as int) > 200603
    或者
    select 
    case when cast(substring(convert(char(6),getdate(),112),1,6) as int) > 200606 
    then tDate end 
    from table