#sql #oracle
#sql #Oracle
Вопрос:
У меня есть условие, при котором мне нужна дата рождения, которая должна быть меньше системной даты, а не null, возраст менее 90 лет, затем вставить в таблицу. Я не знаю, как использовать возраст менее 90 лет в запросе
Запрос:
INSERT INTO table2 (dob)
SELECT dob
FROM table1
WHERE dob <= sysdate
AND dob IS NOT NULL;
Пожалуйста, скажите мне, как использовать возраст менее 90 лет в запросе
Спасибо
Ответ №1:
Вот один из вариантов:
SELECT dob
FROM table1
WHERE
TRUNC(MONTHS_BETWEEN(sysdate, dob) / 12) < 90 AND
dob IS NOT NULL;
Ответ №2:
Попробуйте это:
SELECT dob
FROM table1
WHERE dob > ADD_MONTHS(sysdate, -90*12)
AND dob IS NOT NULL;
Ответ №3:
Я предпочитаю работать с interval
константами для такого рода запросов:
select *
from table1
where dob > trunc(sysdate) - interval '90' year;
Нет необходимости добавлять дополнительное dob is not null
условие, потому dob > ...
что вернет что-то, только если dob
не равно null.