ADD_MONTHS有比较特别的地方:
1,如果碰到日期是一个月的最后一天的时候,也返回那个月的最后一天
例如:SELECT ADD_MONTHS(TO_DATE('20080430','YYYYMMDD'),1) FROM DUAL
返回20080531,而不是20080530
2,如果碰到结果日期没有对应的日,则返回那个月的最后一天
例如:SELECT ADD_MONTHS(TO_DATE('20080130','YYYYMMDD'),1) FROM DUAL
返回20080229
解决方案:
用switch case 来解决以上问题。
欢迎大家针对这个问题提出更多的解决方案。
1,如果碰到日期是一个月的最后一天的时候,也返回那个月的最后一天
例如:SELECT ADD_MONTHS(TO_DATE('20080430','YYYYMMDD'),1) FROM DUAL
返回20080531,而不是20080530
2,如果碰到结果日期没有对应的日,则返回那个月的最后一天
例如:SELECT ADD_MONTHS(TO_DATE('20080130','YYYYMMDD'),1) FROM DUAL
返回20080229
解决方案:
用switch case 来解决以上问题。
欢迎大家针对这个问题提出更多的解决方案。