把“09-10月-04 03.38.59.000000 下午”改为“09-10月-04 03.38.59 下午”SQL>  select systimestamp-to_date('09-10月-04 03.38.59 下午','dd-mm"月"-yy hh.mi.ss AM') from dual;SYSTIMESTAMP-TO_DATE('09-10月-
---------------------------------------单位是天
+000000000 00:52:39.250000

解决方案 »

  1.   

    SQL> select systimestamp-to_date(replace('09-10月-04 03.38.59.000000 下午','.000000',''),'dd-mm"月"-yy hh.mi.ss AM') from dual;SYSTIMESTAMP-TO_DATE(REPLACE('
    ---------------------------------------
    +000000000 01:07:02.031000
      

  2.   

    1.“09-10月-04 03.38.59.000000 下午”是一个表里某个字段的值,实际计算时是用的字段名相减,如systimestamp-modifyday,
    因此这个
    “把“09-10月-04 03.38.59.000000 下午”改为“09-10月-04 03.38.59 下午””的办法行不通。
      

  3.   

    用这个就可以不用改了SQL> select systimestamp-to_date(substr('09-10月-04 03.38.59.000000 下午',1,18)||substr('09-10月-04 03.38.59.000000 下午',26,28),'dd-mm"月"-yy hh.mi.ss AM') from dual;SYSTIMESTAMP-TO_DATE(REPLACE('
    ---------------------------------------
    +000000000 01:07:02.031000
      

  4.   

    再请问为什么有时候systimestamp和一个timestamp格式的时间值相减会有负值?