例如,将表TB中的OUT_DATE中
     U_ID    OUT_DATE
      1      2008-1-1
      2      2001-3-1
      3      2001-5-5
  其中的2001替换为2008。UPDATE TB 
  SET out_date='2008'+RIGHT(out_date,LEN(out_date)-4) 
WHERE out_date LIKE '2001%'这句返回0行,查找不到有2001年的呢。 

解决方案 »

  1.   

    OUT_DATE是datetime型还是nvarchar型?
      

  2.   

    估计是datetime...
    try:update tb
    set out_date=dateadd(yy,7,out_date)
    where datepart(yy,out_date)=2001
      

  3.   

    那你尝试如下这样做!
    Update TB
        Set out_date=replace(out_date,'2001','2008')
    Where Substring(Convert(nvarchar(10),out_date,120),1,4)='2001'
      

  4.   


    上面的语句在数据类型上存在错误.可以采用下面的语句:update TB set out_date=dateadd('y',7,out_date) WHERE out_date LIKE '2001%' 
      

  5.   


    UPDATE TB 
      SET out_date=dateadd(year,2008-year(out_date))
    WHERE year(out_date)=2001