ADD_MONTHS是两个参数,将“+1”改为“,+1”
其次你这里是求的这个日期对应的月倒数第二天再加上一个月,与你所描述不一致
select
TO_DATE(TO_CHAR(add_months(TO_DATE('2022-10-13','YYYY-MM-DD'), -1), 'YYYY-MM')||'-01','YYYY-MM-DD') first_day_1,
last_day(add_months(TO_DATE('2022-10-13','YYYY-MM-DD'), -2))+1 first_day_2
from dual
可以修改为这两种,一种由字符串拼接强制改为第一天,一种先减去两月找到两月前的最后一天,再加上一天即上月第一天了