如何将该字符串转换为日期或时间戳?
'2014年11月4日10:16:20 -0500'
我尝试过:
build
出现错误:
select to_date('04-Nov-2014 10:16:20 AM -0500', 'DD-MON-YYYY HH:MI:SS AM TZH') FROM dual;
答案 0 :(得分:1)
数据类型DATE
不支持任何时区信息,因此,如果要使用数据类型TIMESTAMP WITH TIME ZONE
,则必须使用它。另外,您还应该考虑由当前用户NLS-Settings设置的日期语言。
然后-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;
答案 1 :(得分:0)
您需要使用TO_TIMESTAMP_TZ
,它可以解析时区信息:
SELECT
TO_TIMESTAMP_TZ('04-Nov-2014 10:16:20 AM -0500', 'DD-MON-YYYY HH:MI:SS AM TZHTZM')
FROM dual;
Oracle日期不保留任何时区信息,因此您必须使用时间戳。