Если вы используете правильный литерал даты ANSI с компонентом полного года, он работает:
SELECT MONTHS_BETWEEN(sysdate, date '1940-01-11') FROM dual;
Предполагая, что ваши даты хранятся как текст DD/MM/YY
, вы можете использовать TO_DATE
вместо:
SELECT MONTHS_BETWEEN(sysdate, TO_DATE(date_col, 'DD/MM/YY)
FROM yourTable;
Если приведенное выше не работает, это может быть потому, что 40
интерпретируется как 2040, а не 1940. По возможности используйте полную дату 4 di git, а также избегайте сохранения ваших дат в виде текста.