Вам необходимо создать в Oracle функцию, аналогичную этой.
Как показано ниже:
CREATE OR REPLACE FUNCTION FNDAYS2NEXTEVENT (
BIRTHDATE IN DATE,
TODAY IN DATE
) RETURN INT AS
BEGIN
RETURN BIRTHDATE
+ CEIL(MONTHS_BETWEEN(TODAY, BIRTHDATE) / 12)
* INTERVAL '1' YEAR - TODAY + 1;
END;
/
Тогда вы сможете использовать ее.
SQL> SELECT FNDAYS2NEXTEVENT(DATE'1991-07-20',SYSDATE) FROM DUAL;
FNDAYS2NEXTEVENT(DATE'1991-07-20',SYSDATE)
------------------------------------------
161
SQL> SELECT SYSDATE + 161 FROM DUAL;
SYSDATE+1
---------
20-JUL-20
SQL>
Я не знаю, требуется ли это вам, прокомментируйте в случае расхождения в ответе и ожидании.
Приветствия !!