Oracle收件人日期:ORA-01821:无法识别日期格式

Oracle收件人日期:ORA-01821:无法识别日期格式,oracle,date-formatting,to-date,Oracle,Date Formatting,To Date,如何将此字符串转换为日期或时间戳 “2014年11月4日上午10:16:20-0500” 我试过: select to_date('04-Nov-2014 10:16:20 AM -0500', 'DD-MON-YYYY HH:MI:SS AM TZH') FROM dual; 这会产生错误: ORA-01821: date format not recognized 您需要使用,它可以解析时区信息: SELECT TO_TIMESTAMP_TZ('04-Nov-2014 10:16

如何将此字符串转换为日期或时间戳

“2014年11月4日上午10:16:20-0500”

我试过:

select to_date('04-Nov-2014 10:16:20 AM -0500', 'DD-MON-YYYY HH:MI:SS AM TZH') FROM dual;
这会产生错误:

ORA-01821: date format not recognized
您需要使用,它可以解析时区信息:

SELECT
    TO_TIMESTAMP_TZ('04-Nov-2014 10:16:20 AM -0500', 'DD-MON-YYYY HH:MI:SS AM TZHTZM')
FROM dual;


Oracle日期不保留任何时区信息,因此您必须使用时间戳。

数据类型
DATE
不支持任何时区信息,因此如果您想使用它,您必须将数据类型
时间戳与时区一起使用。还应该考虑当前用户NLS设置所设置的日期语言。

如果
-5000
TZH
不匹配,请尝试此选项:

select 
  TO_TIMESTAMP_TZ('04-Nov-2014 10:16:20 AM -0500', 'DD-MON-YYYY HH:MI:SS AM TZHTZM', 'NLS_DATE_LANGUAGE = American') 
FROM dual;