ORA-01830: 日期格式图片在转换整个输入字符串之前结束
http://shmilylq.javaeye.com/blog/510648
导致错误的原因:日期字符串的长度 大于 日期格式的长度
如 '2007/04/01 13:30:01' 'YYYY-MM-DD'
从下面的例子就可以很容易的分析出这个错误的所在:
SELECT TO_DATE('2007/04/01 13:30:01','YYYY-MM-DD') A FROM dual;
SELECT TO_DATE(SUBSTR('2007/04/01 13:30:01',1,10),'YYYY/MM/DD') B FROM dual;
SELECT SUBSTR('2007/04/01 13:30:01',1,10) FROM DUAL;
导致错误的原因:日期字符串的长度 大于 日期格式的长度
如 '2007/04/01 13:30:01' 'YYYY-MM-DD'
从下面的例子就可以很容易的分析出这个错误的所在:
SELECT TO_DATE('2007/04/01 13:30:01','YYYY-MM-DD') A FROM dual;
SELECT TO_DATE(SUBSTR('2007/04/01 13:30:01',1,10),'YYYY/MM/DD') B FROM dual;
SELECT SUBSTR('2007/04/01 13:30:01',1,10) FROM DUAL;
ORA-01830: 日期格式图片在转换整个输入字符串之前结束
问题:varchar2类型转换成date类型
select to_date(INVOICE_DATE,'yyyy-mm-dd') from tab; --INVOICE_DATE varchar2(30)
提示 ORA-01830: 日期格式图片在转换整个输入字符串之前结束 错误
最后查的原因:INVOICE_DATE=‘2005-11-10 00:00:00’的长度大于格式化'yyyy-mm-dd'的长度
解决:(使用substr())
to_date(substr(INVOICE_DATE,1,10),'yyyy-mm-dd')