即00结尾表示的月份加一个我想到的办法是select to_number(to_char(add_month(to_date(substr(to_char(20080800), 1, 6), 'yyyymm'), 1), 'yyyymm')||'00') from dual;不过效率太低了 有什么好办法?

解决方案 »

  1.   

    试试:select case when mod(20080800,10000) = 1200 then 20080800 + 8900 else 20080800 + 100 end from dual;
      

  2.   

    没太看明白,从标题看,不单单是月份加1了啊,年份也加了吧,但lz给出的sql只有月份加1
      

  3.   

    select add_months('你的日期',13) from dual
      

  4.   

    char型,replace('你的字符串','20080800','20090900)
    date型,add_months('你的日期',13) 
    number型,你的数字+10100