plsql编写脚本时遇到一个日期转换的问题,如果在plsql调试时,脚本可以正常执行,但是程序调用时,就会报错ORA-01830: 日期格式在转换整个输入字符串之前结束
to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') -- oracle 为了区分分钟和月份,月份以mi表示 to_date('2004-05-07','yyyy-mm-dd')
to_date限制两者精确度须一致,比如to_date(‘2004-05-07 13:23:44’,’yyyy-mm-dd’)这个就无法转换
执行时传入的是’yyyy-mm-dd’这种形式的,而程序调用时传入值精确到秒,就报错了,解决办法就是用substr
截取参数的年月日部分
--start_date为varchar2类型 select to_date(start_date,'yyyy-mm-dd') select to_date(substr(start_date,1,10),'yyyy-mm-dd') # 年-月-日