首页 文章

在Oracle SQL中插入自定义TIMESTAMP值

提问于
浏览
0

我需要在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:找到了一个非数字字符,其中包含数字

我使用的是64位的Oracle 11.2.0.2.0(Windows 10)

3 回答

  • 1

    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);
    

    祝你好运 .

  • 2

    您需要删除 :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);
    
  • 0

    您已使用 HH24:MI:SS 作为日期格式,因此您的插入值应为

    TO_TIMESTAMP('12 -23-2015 8:00','MM-DD-YYYY HH24:MI:SS')

相关问题