问题:
1、将 2016-02-29 加6个月 ,结果显示为2016-08-29
2、将2016-08-31 加6个月,结果显示为2017-03-03
  同理其他的日期加6个月后也需要是按如上2点的规律进行转换。曾尝试使用函数 add_month的,但结果分别显示为 “2016-08-31”、“2017-02-28”请问,如何可以显示为 “2016-08-29”、“2017-03-03”  (求各位大师可以指教解决)

解决方案 »

  1.   

    SQL> select add_months(to_date('2016-02-29','yyyy-mm-dd'),6)+extract(day from date'2016-02-29')-extract(day from add_months(to_date('2016-02-29','yyyy-mm-dd'),6)) from dual;ADD_MONTHS(TO_DATE(
    -------------------
    2016-08-29 00:00:00SQL>  select add_months(to_date('2016-08-31','yyyy-mm-dd'),6)+extract(day from date'2016-08-31')-extract(day from add_months(to_date('2016-08-31','yyyy-mm-dd'),6)) from dual;ADD_MONTHS(TO_DATE(
    -------------------
    2017-03-03 00:00:00