本帖最后由 gbys 于 2011-10-28 15:49:31 编辑

解决方案 »

  1.   

    select to_char(to_date(1900 + to_number(substr(to_char(110021),1,3)) || '-01-01','YYYY-MM-DD') + to_number(substr(to_char(110021),4,3)) - 1,'MM') mm from dual;/*
    MM
    --
    011 row selected.
    */你可把110021换为你的字段number
      

  2.   

    太复杂了吧?select to_char(to_date(1900000 + 110041,'yyyymmdd'),'MM') from dual;
      

  3.   

    create table tb(id int , dt int)insert into tb values(1 , 110021)insert into tb values(2 , 111210)
    select id , dt , to_char(to_date(1900 + to_number(substr(to_char(dt),1,3)) || '-01-01','YYYY-MM-DD') + to_number(substr(to_char(dt),4,3)) - 1,'MM') mm from tb;/*
            ID         DT MM
    ---------- ---------- --
             1     110021 01
             2     111210 072 rows selected.
    */