ORA-01810: 格式代码出现两次

Posted

技术标签:

【中文标题】ORA-01810: 格式代码出现两次【英文标题】:ORA-01810: format code appears twice 【发布时间】:2016-03-16 18:34:28 【问题描述】:

为什么下面的 sql 会产生 ORA-01810 错误?我研究了错误,我为每个日期插入使用不同的日期格式

INSERT INTO bag_grte_clm
(
    schd_dprt_ldt,
    arr_trpn_stn_cd,
    bkg_crtn_gdt,
    sbmt_bag_grte_clm_dt,
    bag_grte_clm_stt_cd,
    lst_updt_gts,
    bag_grte_clm_gts,
    dprt_trpn_stn_cd
)
VALUES (
    TO_DATE('2015/12/06', 'yyyy/mm/dd'),
    'YUL',
    TO_DATE('2015-11-15', 'yyyy-mm-dd'),
    TO_DATE('120615', 'MMDDYY'),
    'DENIAL',
    (current_timestamp),
    TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mm:ss'),
    'ATL'
) 

【问题讨论】:

【参考方案1】:

TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mm:ss')

有两个方面的错误:

1.格式代码不正确

您已经重复了两次MM 格式掩码。 MMMI分钟

SQL> SELECT TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mm:ss') FROM dual; SELECT TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mm:ss') 从双 * 第 1 行的错误: ORA-01810: 格式代码出现两次

2。时间部分不正确

00:00:00 是错误的,因为它会抛出 ORA-01849,因为 小时不能为零,它必须在 1 到 12 之间

SQL> SELECT TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mi:ss') FROM dual; SELECT TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mi:ss') 从双 * 第 1 行的错误: ORA-01849: 小时必须在 1 到 12 之间

正确的方法是使用 24 小时 格式,或者保留默认为 12 AM时间部分

例如,

24 小时制:

SQL> SELECT  TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh24:mi:ss') my_tmstamp FROM dual;

MY_TMSTAMP
---------------------------------------------------------------------------
06-DEC-15 12.00.00.000000000 AM

没有时间部分:

SQL> SELECT  TO_TIMESTAMP('20151206', 'yyyymmdd') my_tmstamp FROM dual;

MY_TMSTAMP
-----------------------------------------------------------------------
06-DEC-15 12.00.00.000000000 AM

【讨论】:

【参考方案2】:

您在TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mm:ss') 中使用了两次mm 格式代码

MM 适用于MI 适用于分钟 您可能打算使用YYYYMMDD HH:MI:SS

更多信息请查看date format models列表。

【讨论】:

TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mi:ss') 仍然是错误的。它将抛出 ORA-01849: hour must be between 1 and 12

以上是关于ORA-01810: 格式代码出现两次的主要内容,如果未能解决你的问题,请参考以下文章

日期格式代码出现两次的错误 ORA-01810

ORA 01810 格式代码出现两次的error

ora_01810:格式代码出现两次

自定义格式的 Django 表单错误出现两次

推送通知推送出现两次? [复制]

JS: javascript 点击事件执行两次js问题 ,解决jquery绑定click事件出现点击一次执行两次问题