Oracle日期 - 如何增加年至今Oracle日期 - 如何增加年至今(Oracle Date -

2019-05-12 04:26发布

我有一个日期字段

DATE = 10/10/2010

总和= 4(这是多年通过计算数)

有没有办法到四年增加10/10/2010并使其二○一四年十月十日?

Answer 1:

尝试添加个月(两年12 *号)来代替。 像这样-

add_months(date'2010-10-10', 48)


Answer 2:

使用add_months

例:

SELECT add_months( to_date('10-OCT-2010'), 48 ) FROM DUAL;

警告
ADD_MONTHS,返回结果月份的最后一天,如果你输入一个月的最后一天开始说起。

所以add_months(to_date('28-feb-2011'),12)将返回29 - 2月- 2012年的结果。



Answer 3:

我相信你可以使用ADD_MONTHS()函数。 4年为48个月,因此:

add_months(DATE,48)

下面是使用功能的一些信息:

http://www.techonthenet.com/oracle/functions/add_months.php

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1157035034361



Answer 4:

我不知道,如果我理解正确你的问题,但

select add_months(someDate, numberOfYears * 12) from dual

可能做的伎俩



Answer 5:

你可以试试这个:

someDate + interval '4' year

间隔



Answer 6:

还有一个从ADD_MONTHS除了选项

SELECT
      SYSDATE,
      SYSDATE
      + TO_YMINTERVAL ( '1-0' )
FROM
      DUAL;


SYSDATE   SYSDATE+TO_YMINTERVAL('1-0')
--------- ----------------------------
29-OCT-13 29-OCT-14                   
1 row selected.


SELECT
      SYSDATE,
      SYSDATE
      + TO_YMINTERVAL ( '2-0' )
FROM
      DUAL;


SYSDATE   SYSDATE+TO_YMINTERVAL('2-0')
--------- ----------------------------
29-OCT-13 29-OCT-15                   
1 row selected.

SELECT
      TO_DATE ( '29-FEB-2004',
              'DD-MON-YYYY' )
      + TO_YMINTERVAL ( '1-0' )
FROM
      DUAL

   *
Error at line 4

ORA-01839: date not valid for month specified

但最后一个是非法的,因为那里是2月的2005年没有29天,因此它无法在闰年的情况(2月29)

阅读文档的同



文章来源: Oracle Date - How to add years to date