select  dateadd(day,-1,convert(char(06),dateadd(month,1,'20070301'),112)+'01')
的时候,查询结果是:2007-03-31 00:00:00.000,我想要的是20070331

解决方案 »

  1.   

    --转换一下
    convert(varchar(10),getdate(),112)
      

  2.   

    select  convert(varchar(10),dateadd(day,-1,convert(char(06),dateadd(month,1,'20070301'),112)+'01'),112)
      

  3.   

    select Convert(char(8),dateadd(day,-1,dateadd(month,1,'20070301')),112)
      

  4.   

    select dateadd(day,-1,cast((convert(varchar(7),dateadd(month,1,getdate()),120) + '-01') as datetime))
      

  5.   

    select convert(varchar(8),dateadd(day,-1,cast((convert(varchar(6),dateadd(month,1,getdate()),112) + '01') as datetime)),112)
      

  6.   

    用一个convert就行了,后面的style写成112
    ls的好多都正解了
      

  7.   

    select convert(Varchar(8), dateadd(dy,-1,convert(varchar(7),getdate(),120)+'-01'),112)
      

  8.   

    declare @date datetime
    set @date='20070301'
    select dateadd(month,1,@date)-1
    -----------------------
    2007-03-31 00:00:00.000(1 行受影响)