我需要在oracle数据库中插入自定义日期时间,其中ITEM_TIME_DATE
列具有TIMESTAMP
数据类型。
这是我的问题:
INSERT INTO items
(ITEM_AUTHOR_ID, ITEM_TITLE, ITEM_DESCRIPTION, ITEM_TIME_DATE, ITEM_STATUS)
VALUES
('0', 'test title', 'test des', TO_TIMESTAMP('12-23-2015 8:00 PM', 'MM-DD-YYYY HH24:MI:SS'), 0);
虽然自定义日期应转换为时间戳格式,但我收到此错误:
ORA-01858:找到了一个非数字字符,其中数字是预期的
我使用的是Oracle 11.2.0.2.0(Windows 10)64位
答案 0 :(得分:2)
TO_TIMESTAMP
来电中的日期格式与数据不匹配。使用:
INSERT INTO items
(ITEM_AUTHOR_ID, ITEM_TITLE, ITEM_DESCRIPTION, ITEM_TIME_DATE, ITEM_STATUS)
VALUES
('0', 'test title', 'test des', TO_TIMESTAMP('12-23-2015 8:00 PM', 'MM-DD-YYYY HH:MI AM'), 0);
祝你好运。
答案 1 :(得分:1)
您需要删除:SS
或添加秒:00
到您的时间,并将AM
添加到格式中。
这有效:
INSERT INTO items
(ITEM_AUTHOR_ID, ITEM_TITLE, ITEM_DESCRIPTION, ITEM_TIME_DATE, ITEM_STATUS)
VALUES
('0', 'test title', 'test des', TO_TIMESTAMP('12-23-2015 8:00:00 PM', 'MM-DD-YYYY HH:MI:SS AM'), 0);
答案 2 :(得分:0)
您已使用HH24:MI:SS
作为日期格式,因此您的插入值应为
TO_TIMESTAMP(' 12-23-2015 8:00',' MM-DD-YYYY HH24:MI:SS')