我有一个来自网络服务的日期,格式为 9999-06-15T00:00:00.000+0000。如何将其保存到 Oracle 12c DB 中表的日期列中。
我努力了
select to_date('9999-06-15T00:00:00.000+0000', 'YYYY-MM-DDTHH24:MI:SS.fff+0000')
from dual;
但我收到错误“ORA-01821:日期格式无法识别”
任何帮助深表感谢
我有一个来自网络服务的日期,格式为 9999-06-15T00:00:00.000+0000。如何将其保存到 Oracle 12c DB 中表的日期列中。
我努力了
select to_date('9999-06-15T00:00:00.000+0000', 'YYYY-MM-DDTHH24:MI:SS.fff+0000')
from dual;
但我收到错误“ORA-01821:日期格式无法识别”
任何帮助深表感谢
文字的格式符合timestamp
数据类型而不是date
数据类型。因此,to_timestamp
如果它的格式没有从加号开始的尾随部分,则使用转换就足够了
SELECT TO_TIMESTAMP('9999-06-15T00:00:00.000', 'YYYY-MM-DD"T"HH24:MI:SS.FF3') AS ts
FROM dual;
将字母引用T
为,并在原始格式掩码中"T"
添加后缀.FF3
而不是as 。fff
有了那个尾随部分,我们需要一个转换WITH TIME ZONE
( TO_TIMESTAMP_TZ
),它在加号之后有TZH
( Time Zone Hour
) 和TZM
( ) 部分。Time Zone Minute
所以,使用
SELECT TO_TIMESTAMP_TZ('9999-06-15T00:00:00.000+0000', 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') AS ts
FROM dual;
符合您的数据模型。