今天在做项目的时候碰到个问题,oracle数据库里的时间字段设置成了Date型了,从表单中传过来的也是String型的,这样to_date比较的时候报这个错误
"ORA-01830: 日期格式图片在转换整个输入字符串之前结"
(下面找的是英文oracle错误提示信息)
ORA-01830 date format picture ends before converting entire input string |
Cause | A valid date format picture included extra data. The first part of the format picture was converted into a valid date, but the remaining data was not required. |
Action | Check the specifications for date format pictures and correct the statement. |
后来再网上找了下找到了解决办法。
问题:varchar2类型转换成date类型
select to_date(INVOICE_DATE,'yyyy-mm-dd') from tab;
提示 ORA-01830: 日期格式图片在转换整个输入字符串之前结束 错误
最后查的原因:INVOICE_DATE=‘2005-11-10 00:00:00’的长度大于格式化'yyyy-mm-dd'的长度
解决:(使用substr())
to_date(substr(INVOICE_DATE,1,10),'yyyy-mm-dd')