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'

posted on 2015-03-26 15:52  阿忽伦儿  阅读(6134)  评论(0编辑  收藏  举报

导航