update yourTable
set myField=to_char(ADD_MONTHS(to_date(myField,'yyyymm'),-3),'yyyymm');

解决方案 »

  1.   

    --日期相加减(日期相减可以用负号)
    select sysdate from dual;SYSDATE
    ---------
    15-JUN-05SQL> select sysdate + 3*365 +1 from dual;SYSDATE+3
    ---------
    15-JUN-08SQL> select add_months(sysdate,36) from dual;ADD_MONTHS(SYSDATE,
    -------------------
    2008-06-15 16:56:19已用时间:  00: 00: 02.23加3年
    select sysdate + interval '3' year from dual
    加3年2个月
    select sysdate + interval '3-2' year to month from dual
    加10天2小时10分
    select sysdate + interval '10 2:10' day to minute from dual
      

  2.   

    楼主采用一下liuyann(liuyann) 的方法应该是可以实现你的要求的!
      

  3.   

    ADD_MONTHS 和 MONTH_BETWEEN 都是很好用的。
      

  4.   

    回复人: liuyann(liuyann) ( ) 信誉:100  2005-6-30 23:12:17  得分: 0  
     
     
       
    update yourTable
    set myField=to_char(ADD_MONTHS(to_date(myField,'yyyymm'),-3),'yyyymm');  
     
    这个应该是正确的.