从SQL表中取出值是201112(表示2011年12月)如何实现将这个值201112减去1个月后的年月,即:201111(表示2011年11月)?因为会跨年,所以需要将201112转换成年月减1,再转换成字符.不知道怎么操作,网上搜了一大圈都是年月日的转换,只好到这里请大家帮忙!

解决方案 »

  1.   


    declare @t varchar(6)
    set @t='201112'
    select 
    convert(varchar(6),dateadd(m,-1,cast(left(@t,4)+'-'+right(@t,2)+'-01' as datetime)),112)
    /*
    201111
    */
      

  2.   

    declare @t varchar(6)
    set @t='201101' --如果是201101 则结果是201012
    select 
    convert(varchar(6),dateadd(m,-1,cast(left(@t,4)+'-'+right(@t,2)+'-01' as datetime)),112)
    /*
    201012
    */