Вычислить возраст для указанного c года в oracle sql - PullRequest
0 голосов
/ 09 мая 2020

Пожалуйста, мне нужна помощь по поводу oracle sql! Я пытаюсь узнать возраст по дате рождения, но это не работает с 1940 года! Мой запрос

select months_between(sysdate, '11/01/40') from dual

, и я получаю ответ -19!

Расчет работает до 1950

1 Ответ

0 голосов
/ 09 мая 2020

Если вы используете правильный литерал даты 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, а также избегайте сохранения ваших дат в виде текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...