Как мне узнать возраст по текущему системному времени в NLS_DATE_FORMAT? (Oracle SQL)

У меня есть таблица под названием "человек". Как мне узнать возраст человека по текущему системному времени в NLS_DATE_FORMAT?

ALTER SESSION SET NLS_DATE_FORMAT = 'DD.MM.YYYY';

CREATE TABLE person (
  person_id      NUMBER (9),
  birthday       DATE CONSTRAINT nn_person_birthday NOT NULL,
  ...
);

Примечание: мне нужен только точный возраст, а не месяцы и дни. Пример Возраст: 43

Примечание 2: я вставляю дату рождения в мою таблицу следующим образом: TO_DATE('17.05.2003','DD.MM.YYYY')

1 ответ

Решение

Формат даты не имеет значения. Я бы посоветовал:

floor(months_between(sysdate, p.birthday) / 12)
Другие вопросы по тегам