【问题标题】:Inserting Date gives error ORA-01861: literal does not match format string插入日期给出错误 ORA-01861:文字与格式字符串不匹配
【发布时间】:2018-12-11 09:29:03
【问题描述】:

将日期插入 WSH_Delivery_Details_Interface (https://docs.oracle.com/cloud/r13_update17c/scmcs_gs/OEDSC/WSH_DELIVERY_DETAILS_tbl.htm) 会引发此错误

查询:

insert into WSH_DEL_DETAILS_Interface
    (DELIVERY_DETAIL_INTERFACE_ID, CREATION_DATE, Date_Requested)
values
    (30010985553,
     TO_DATE('11/12/2018T05:10:30-00:00', 'DD/MM/YYYY '),
     TO_DATE('11/12/2018', 'DD/MM/YYYY'));

creation_date 和 date_requested 列中的示例记录:

Date_Requested    Creation_Date
16-JUN-10         17-JUN-10 03.40.31.865000000 PM

【问题讨论】:

  • 哪一栏有问题?
  • creation_date 和 date_requested
  • 现在您可以从插入中删除其他列,以使问题更易于阅读。
  • 编辑问题
  • @AlexPoole 已经存在的记录创建_日期有时间戳..所以我想它是需要的

标签: sql oracle


【解决方案1】:

错误可以简化为:

select TO_DATE('11/12/2018T05:10:30-00:00','DD/MM/YYYY ') from dual;

Error report -
ORA-01861: literal does not match format string

这是合理的,因为它显然不匹配。您需要在格式掩码中包含时间元素,以及固定“T”和固定时区偏移的字符文字:

select TO_DATE('11/12/2018T05:10:30-00:00','DD/MM/YYYY"T"HH24:MI:SS"-00:00"') from dual;

TO_DATE('11/12/2018
-------------------
2018-12-11 05:10:30

如果该“时区”部分不固定且需要遵守,那么您可以使用to_timestamp_tz() 而不是to_date()

select TO_TIMESTAMP_TZ('11/12/2018T05:10:30-00:00','DD/MM/YYYY"T"HH24:MI:SS.FFTZH:TZM')
from dual;

TO_TIMESTAMP_TZ('11/12/20
-------------------------
2018-12-11 05:10:30.0 GMT

我在格式模型中包含了.FF 以及时区偏移元素(如果您可能通过区域而不是偏移量,您可以使用TZR 而不是TZH:TZM),因为您的现有示例data 有小数秒,即使你的文字字符串在这种情况下没有

如果需要,您可以 cast() 将其转换为日期或普通时间戳,或者如果输入值可以是其他区域/偏移量,则可能标准化为 UTC:

select TO_TIMESTAMP_TZ('11/12/2018T04:10:30-01:00','DD/MM/YYYY"T"HH24:MI:SS.FFTZH:TZM') as orig,
  SYS_EXTRACT_UTC(
    TO_TIMESTAMP_TZ('11/12/2018T04:10:30-01:00','DD/MM/YYYY"T"HH24:MI:SS.FFTZH:TZM')) as utc
from dual;

ORIG                         UTC                  
---------------------------- ---------------------
2018-12-11 04:10:30.0 -01:00 2018-12-11 05:10:30.0

【讨论】:

  • 谢谢@AlexPoole
猜你喜欢
  • 2014-04-27
  • 1970-01-01
  • 1970-01-01
  • 2017-08-24
  • 2016-04-02
  • 2015-01-11
  • 2010-11-26
  • 2012-10-09
相关资源
最近更新 更多