在Oracle SQL中检查小于90岁的日期

时间:2019-04-11 07:24:29

标签: sql oracle

我有需要满足的条件,出生日期必须小于系统日期,不能为null,年龄小于90岁,然后插入表格中。我不知道如何在查询中使用小于90岁的年龄

查询:

INSERT INTO table2 (dob)

SELECT dob
FROM table1
WHERE dob <= sysdate
AND dob IS NOT NULL;

请告诉我如何在查询中使用小于90岁的年龄段

谢谢

3 个答案:

答案 0 :(得分:2)

这里是一种选择:

SELECT dob
FROM table1
WHERE
    TRUNC(MONTHS_BETWEEN(sysdate, dob) / 12) < 90 AND
    dob IS NOT NULL;

答案 1 :(得分:0)

尝试这个:

SELECT dob
FROM table1
WHERE dob > ADD_MONTHS(sysdate, -90*12)
AND dob IS NOT NULL;

答案 2 :(得分:0)

对于这种查询,我更喜欢使用interval常量:

select *
from table1
where dob > trunc(sysdate) - interval '90' year;

不需要添加其他dob is not null条件,因为dob > ...仅在dob不为null的情况下才会返回内容。