我遇到的问题是,改一个表里的数据,只改动年份。例如现在表里的时间是2004-1-3 我想改成当年的年份,月日还是1-3,即2006-1-3 如果今年是2007年那么时间应更新为2007-1-3怎么来写?在这里先谢谢了。

解决方案 »

  1.   

    update tb 
    set colname=stuff(colname,1,4,cast(year(getdate()) as varchar))
      

  2.   

    declare @t datetime
    set @t='2004-1-3'
    select dateadd(yy,datediff(yy,@t,getdate()),@t)
      

  3.   

    upate 表 set 字段=dateadd(yy,datediff(yy,字段,getdate()),字段)
      

  4.   

    upate 表 set 字段=dateadd(year,datediff(year,字段,getdate()),字段)
      

  5.   

    update 表名
    set 字段 = dateadd(yyyy, datediff(yyyy, 字段, getdate()), 字段)
      

  6.   

    libin_ftsafe(子陌红尘) ( ) 信誉:105  2006-2-28 10:35:27  得分: 0  
     
     
       
    upate 表 set 字段=dateadd(yy,datediff(yy,字段,getdate()),字段)  正解!
      

  7.   

    upate 表 set 字段=dateadd(yy,datediff(yy,字段,getdate()),字段)
      

  8.   

    多谢各位支持,我选得处理办法是set 字段=dateadd(year,datediff(yy,字段,getdate()),字段).已经投入使用了