Подтвердить что ты не робот

Oracle Date - как добавить годы к настоящему времени

У меня есть поле даты

DATE = 10/10/2010

sum = 4 (это количество лет по расчёту)

есть ли способ добавить четыре года к 10/10/2010 и сделать это 10/10/2014

4b9b3361

Ответ 1

Попробуйте добавить месяцы (12 * количество лет). Как это -

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

Ответ 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-фев-2012 в результате.

Ответ 4

Я не уверен, если я правильно понял ваш вопрос, но

select add_months(someDate, numberOfYears * 12) from dual

может сделать трюк

Ответ 5

Вы можете попробовать следующее:

someDate + interval '4' year

INTERVAL

Ответ 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

Но последний из них является незаконным, так как в 2005 году не было 29-го февраля февраля, поэтому он не работает в случаях високосного года (29 февраля)

Прочитайте документацию для того же