plsql报错如下图:
表中实际存的时间为varchar2,且是yyyy-MM-dd格式。
所以在to_date转换的时候不能to_date(t.create_time,'yyyy-MM'),而是要用to_date(t.create_time,'yyyy-MM-dd').
报错原因是字符串的精确度与转换时间格式没有对应。
截取start_date年月日部分使用 select to_date(substr(start_date,1,10),'yyyy-mm-dd') into this_date from dual