【发布时间】:2017-03-16 16:04:58
【问题描述】:
甲骨文: 12c
说明: 尝试使用 add_months 将 99 年添加到日期,但它会在返回日期值上增加一天。我应该如何正确地将年份添加到日期?
declare
toRetDate DATE;
inputDate DATE;
numYears number;
begin
numYears := 99;
inputDate := TO_DATE('28-FEB-85', 'DD-Mon-YY' );
toRetDate := add_months(inputDate, numYears*12);
DBMS_OUTPUT.put_line(toRetDate);
end;
输出:29-FEB-84
【问题讨论】:
-
正如我在回答中所解释的,ADD_MONTHS 不会随机“添加一天”到结果中。有了这个解释:你真的需要结果是 84 年 2 月 28 日吗?如果是这样,为什么?为什么 2 月 29 日不行?
-
我希望明确添加年份但保留同一天。根据我的问题,它规定仅在日期中添加年份。当然,这种情况的例外是 2 月 29 日。