在Oracle SQL中插入自定义TIMESTAMP值

时间:2015-12-29 14:34:33

标签: sql oracle

我需要在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位

3 个答案:

答案 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')