我有需要满足的条件,出生日期必须小于系统日期,不能为null,年龄小于90岁,然后插入表格中。我不知道如何在查询中使用小于90岁的年龄
查询:
INSERT INTO table2 (dob)
SELECT dob
FROM table1
WHERE dob <= sysdate
AND dob IS NOT NULL;
请告诉我如何在查询中使用小于90岁的年龄段
谢谢
答案 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的情况下才会返回内容。