我正在尝试运行此插入命令
INSERT INTO DW_BATCH_HIST
(DW_BATCH_HIST.BATCH_NBR, DW_BATCH_HIST.TRANS_START_DATE, DW_BATCH_HIST.BATCH_STATUS)
VALUES(82,to_date('27-SEPT-2012 11:00:00.000','DD-MON-YYYY hh:mi:ss'), 1)
我收到此错误:
ORA-01841 :(完整)年份必须介于-4713和+9999之间,而不是0
这一年是有效年份,所以我不明白为什么会收到此错误。我错过了什么?
答案 0 :(得分:2)
掩码的MON
部分的月份应该是三个字母的缩写,而不是你所拥有的四个。
编辑:正如其他人所指出的那样,也应该删除毫秒。
'27-SEP-2012 11:00:00'
答案 1 :(得分:0)
如果您希望在Oracle(以及大多数其他数据库)中使用日期/时间格式保持安全,请使用SQL标准时间戳文字格式。在你的情况下,写
TIMESTAMP '2012-09-27 11:00:00.000'
如果这不是一个选项,请修改日期:
to_date('27-SEP-2012 11:00:00','DD-MON-YYYY hh:mi:ss')
-- removed the T from SEPT, as well as the millisecond part
答案 2 :(得分:0)
将'SEPT'更改为'SEP'并从时间值中删除毫秒。