我需要解释以下问题:
我在表中插入了一些值,并在TIMESTAMP(6)
列中插入了值
11-JAN-16 03.04.30.944265000
抛出了标题中提到的错误。
对于某些其他值,它不会抛出任何错误,例如:
10-JAN-16 05.15.15.063826000
10-JAN-16 05.10.45.039946000
10-JAN-16 05.09.45.060794000
我知道我不应该依赖从varchar到时间戳的隐式转换,这就是我将使用转换的原因:
to_timestamp(column, 'DD-Mon-RR HH24.MI.SS.FF)
请让我知道为什么以及何时发生此错误。谢谢! 甲
答案 0 :(得分:0)
我已根据您的要求创建了测试环境。看看下面:
CREATE TABLE SCOTT.TEST
(
A TIMESTAMP(6)
);
SQL> Insert into SCOTT.TEST (A)
Values(TO_TIMESTAMP('01-10-16 05:15:15.063826000','fmMMfm-fmDDfm-YYYY fmHH12fm:MI:SS.FF AM')); 2
1 row created.
SQL> Insert into SCOTT.TEST (A)
Values(TO_TIMESTAMP('01-10-16 05.10.45.039946000','fmMMfm-fmDDfm-YYYY fmHH12fm:MI:SS.FF AM')); 2
1 row created.
SQL> Insert into SCOTT.TEST (A)
Values(TO_TIMESTAMP('01-10-16 05.09.45.060794000','fmMMfm-fmDDfm-YYYY fmHH12fm:MI:SS.FF AM')); 2
1 row created.
SQL> COMMIT;
Commit complete.
SQL> select * from test;
A
---------------------------------------------------------------------------
10-JAN-16 05.15.15.063826 AM
10-JAN-16 05.10.45.039946 AM
10-JAN-16 05.09.45.060794 AM
- 使用其他格式掩码
SQL> Insert into SCOTT.TEST (A)
Values(TO_TIMESTAMP('10-JAN-16 05.15.15.063826000','fmDDfm-fmMONfm-YYYY fmHH12fm:MI:SS.FF AM'));SQL> 2
1 row created.
SQL> Insert into SCOTT.TEST (A)
Values(TO_TIMESTAMP('10-JAN-16 05.10.45.039946000','fmDDfm-fmMONfm-YYYY fmHH12fm:MI:SS.FF AM')); 2
1 row created.
SQL> Insert into SCOTT.TEST (A)
Values(TO_TIMESTAMP('10-JAN-16 05.09.45.060794000','fmDDfm-fmMONfm-YYYY fmHH12fm:MI:SS.FF AM')); 2
1 row created.
SQL> COMMIT;
Commit complete.
SQL> select * from test;
A
---------------------------------------------------------------------------
10-JAN-16 05.15.15.063826 AM
10-JAN-16 05.10.45.039946 AM
10-JAN-16 05.09.45.060794 AM
10-JAN-16 05.15.15.063826 AM
10-JAN-16 05.10.45.039946 AM
10-JAN-16 05.09.45.060794 AM
6 rows selected.
希望它会对你有所帮助。
答案 1 :(得分:-1)
原因
您尝试输入日期值,但输入的日期与日期格式不符。