检查是否你的所有输入都满足长度的要求,应该是有些数据不满足长度要求才会出错, select min(len(paytype)) from m_sendmaterial group by paytype;
只有一条记录,paytype的长度为12
select sysdate-to_date(substr('040717192423A',1,6),'yymmdd') from dual没有任何问题.
对SQL机制的疑问: 在表中只有两个字段:area,paytype;现在表中记录如下: JSYD 0407 JSDX 040717162135B JSYD 就会报如题的错误,而把JSYD的记录全删除,就不报错了。 但我在如下的SQL中是限定的area='JSDX' and 了啊? select * from table1 where area='JSDX' and length(paytype)>=6 and Sysdate>to_date(substr(PAYTYPE,1,6),'YYMMDD');
select min(len(paytype)) from m_sendmaterial group by paytype;
在表中只有两个字段:area,paytype;现在表中记录如下:
JSYD 0407
JSDX 040717162135B
JSYD
就会报如题的错误,而把JSYD的记录全删除,就不报错了。
但我在如下的SQL中是限定的area='JSDX' and 了啊?
select * from table1 where area='JSDX' and length(paytype)>=6 and Sysdate>to_date(substr(PAYTYPE,1,6),'YYMMDD');