【问题标题】:Inserting custom TIMESTAMP value in the Oracle SQL在 Oracle SQL 中插入自定义 TIMESTAMP 值
【发布时间】:2015-12-29 14:34:33
【问题描述】:

我需要在 ITEM_TIME_DATE 列具有 TIMESTAMP 数据类型的 oracle 数据库中插入自定义日期时间。

这是我的查询:

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 位

【问题讨论】:

    标签: sql oracle


    【解决方案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);
      

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-04-03
          • 2018-12-19
          • 1970-01-01
          • 2012-05-12
          • 1970-01-01
          • 2014-09-14
          • 1970-01-01
          • 2018-06-26
          相关资源
          最近更新 更多