也许有人可以帮助我: 我以该格式输入日期
'2014-06-26T14:36:37.000+0000'
我希望在 TIMESTAMP(3)WITH TIME ZONE 类型的 TIMECOL 列中插入此日期, 所以我这样做:
INSERT INTO MY_TABLE(ID,NAME,TIMECOL) VALUES (NULL, 'TESTN',TO_TIMESTAMP('2014-06-26T14:36:37.000+0000', 'YYYY-MM-DD"T"HH24:MI:SS.FF3+TMZ'));
但是我收到了错误: ORA-01821:日期格式无法识别。
我需要使用哪种口罩?
答案 0 :(得分:2)
我猜您需要使用TO_TIMESTAMP_TZ
才能获得带时区的时间戳。以下作品:
select TO_TIMESTAMP_TZ('2014-06-26T14:36:37.000+0000', 'YYYY-MM-DD"T"HH24:MI:SS.FF3 TZD') from dual
所以,你的INSERT
可能是,
INSERT INTO MY_TABLE(ID,NAME,TIMECOL)
VALUES (NULL,
'TESTN',
TO_TIMESTAMP_TZ('2014-06-26T14:36:37.000+0000', 'YYYY-MM-DD"T"HH24:MI:SS.FF3 TZD'));
答案 1 :(得分:1)
这个Oracle#$ %% ^的问题在于TO_TIMESTAMP_TZ和FROM_TZ的格式很糟糕。如果要以实际使用的格式将值插入日期字段,请尝试以下操作。您在Oracle支持论坛上找不到这个。
- 真实格式
SELECT to_date(to_char(from_tz(CAST (sysdate AS TIMESTAMP), 'US/Eastern') AT TIME ZONE 'UTC', 'MM/DD/YYYY HH12:MI:SS'), 'MM/DD/YYYY HH12:MI:SS') as MyDateToInsert from dual;