declare @date datetimeset @date = '2006-2-25 12:12:23'select @dateselect case when month(@date) <>12 then cast(year(@date) as varchar(4)) + '-' + cast(month(@date)+1 as varchar(2)) + '-1'
else cast(year(@date)+1 as varchar(4)) + '-1-1' end + ' ' + right(convert(varchar(20), @date,120),8)

解决方案 »

  1.   

    declare @date datetime
    set @date='2006-2-25 12:12:23'
    select convert(char(7),dateadd(mm,1,@date),120)+'-01 '+convert(char(8),@date,108)/*
    ------------------- 
    2006-03-01 12:12:23
    */
      

  2.   

    select convert(varchar(8),dateadd(mm,@date,'2006-2-25 12:12:23') ,120) + '01' +
     right(convert(varchar(19),'2006-2-25 12:12:23',120),9)
      

  3.   

    select convert(varchar(8),dateadd(mm,1,'2006-2-25 12:12:23') ,120) + '01' +
     right(convert(varchar(19),'2006-2-25 12:12:23',120),9)
      

  4.   

    declare @date datetime
    set @date='2006-2-25 12:12:23'
    select convert(char(8),dateadd(mm,1,@date),120)+'01 '+right(convert(char(19),@date,120),9)/*
    ------------------- 
    2006-03-01 12:12:23
    */