Oracle error code解析

ORA-01810: format code appears twice

     该异常一般出现在使用to_date函数时。我们在制定to_date转换格式时,如果将格式写成'yyyy-mm-dd hh:MM:ss'就会抛此异常。因为在oracle中日期格式是不区分大小写的,因此系统会认为'mm' 与 'MM'等同,即出现了两次。

        正确的写法是:
        to_date('2006-06-01 18:00:00' 'yyyy-mm-dd hh:mi:ss')

        to_date('2006-06-01 18:00:00' 'yyyy-mm-dd hh12:mi:ss')

        to_date('2006-06-01 18:00:00' 'yyyy-mm-dd hh24:mi:ss')

        其中,hh和hh12效果等同。

 

        除了在to_date函数中使用'yyyy-mm-dd hh:MM:ss' 转换会出问题,在to_char中也会,只不过系统不会因此抛出异常。分析如下代码:

       假设当前系统时间是 3/5/2010 6:00:57 pm,使用to_char转换格式

       to_char(sysdate, 'yyyy-mm-dd hh:MM:ss' )

       期待转换结果:2010-03-05 06:00:57

       实际转换结果:2010-03-05 06:03:57

       产生此错误就是因为系统认为mm和MM等同,并将月份位(mm)的值添加到了分钟位。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值