已知 一个数字 201109 想获取4个月后的相同格式的日期 如 201201

解决方案 »

  1.   


    select convert(varchar(6),dateadd(month,4,convert(datetime,'201109'+'01')),112)/*
    201201
      

  2.   

    declare @s varchar(100)
    set @s='201109'
    select replace(convert(varchar(7),dateadd(mm,4,LEFT(@s,4)+'-'+RIGHT(@s,2)+'-01'),120),'-','')
    /*
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    201201(1 行受影响)*/
      

  3.   


    declare @t varchar(6) ;set @t='201109'
    select convert(varchar(6),(dateadd(month,4,cast(@t+'01' as datetime))),112)
    /*
    201201
    */
      

  4.   

    select convert(varchar(6),dateadd(month,4,convert(datetime,日期【201109】+'01')),112) from 表从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。这是为什么呢?