oracle 报“无效数字”异常和“ORA-01830: 日期格式图片在转换整个输入字符串之前结束”


1.问题1

  执行下列SQL:

  sql = "select count(1) as totle from vhl_model_data a where a.OBTAIN_CREATE_TIME between       to_date(?,'yyyymmsshh24mi') and to_date(?,'yyyymmsshh24mi');";

  Oracle报“无效数字异常”;经过两个钟头的反复的检查,发现是由于自己粗心在上述语句结尾多写了个分号“;”导致。粗心害死人啊!真是囧!

2.问题2

  ORA-01830: 日期格式图片在转换整个输入字符串之前结束”异常

  原因:在创建表的时候,将本该达date类型的字段写成了varchar2类型,而在hibernate的mapping配置文件中将此字段的类型设为了“java.util.Date”,这样在保存的时候hibernate会把毫秒数也添加到数据库中,而oracle中date类型不支持毫秒数,所以在使用to_date()函数将字符串转换为时间类型时会报错。

  解决办法就是把表中此字段的类型改为date类型或者使用to_timestamp()函数,用法与to_date()函数一样,时间格式为:'yyyy-mm-ss hh24:mi:ss:ff'


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM