我正在执行此查询并收到此错误。请帮忙。
SQL> select to_timestamp((sysdate-1)||'01.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF PM') from dual;
第1行的错误:ORA-01855:AM / A.M。或PM / P.M。需要
答案 0 :(得分:0)
如果在没有显式强制转换的情况下使用sysdate
,则假定您的NLS设置以'DD-MON-RR'
格式提供日期。
要构建更安全的查询,请使用显式转换,格式为mask:
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL> select to_timestamp(to_char(sysdate-1,'DD-MON-RR' ) ||' 01.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF PM') from dual;
TO_TIMESTAMP(TO_CHAR(SYSDATE-1,'DD-MON-RR')||'01.00.00.000000000PM','DD-MON
---------------------------------------------------------------------------
15-SET-16 13:00:00,000000000
SQL>