在表中有个tjrq 字段
里面存放着tjrq
38561
38562
38574
..
38600
的这些数字所表示的是从 1899年1月1日开始所过的天数
例如:38600表示=200年9月5日现在的问题是我在mssql中用year(tjrq),month(tjrq) 可以分别取出年,月,
if  tjrq值为38600  时
month(tjrq)=9,year(tjrq)=2005      
不知ORACLE是否有类似的函数可以实现取得tjrq中取出年,月的?

解决方案 »

  1.   

    SQL> select to_char(to_date('1899-1-1','yyyy-mm-dd')+38600,'yyyy') from dual;TO_C
    ----
    2004SQL>
    月:mm
    日:dd
      

  2.   

    YEAR  = TO_CHAR((TO_DATE('1899-01-01','YYYY-MM-DD')+tjrq),'YYYY')
    MONTT = TO_CHAR((TO_DATE('1899-01-01','YYYY-MM-DD')+tjrq),'MM')
    DAY   = TO_CHAR((TO_DATE('1899-01-01','YYYY-MM-DD')+tjrq),'DD')
      

  3.   

    SQL> select extract(year from date '1899-1-1' + 38600) from dual;EXTRACT(YEARFROMDATE'1899-1-1'
    ------------------------------
                              2004SQL> select extract(month from date '1899-1-1' + 38600) from dual;EXTRACT(MONTHFROMDATE'1899-1-1
    ------------------------------
                                 9SQL> select extract(day from date '1899-1-1' + 38600) from dual;EXTRACT(DAYFROMDATE'1899-1-1'+
    ------------------------------
                                 7