我正试图从oracle数据库中捕捉到未来30天内将年满65岁的人。
谢谢!
select *
from your_table
where birthdate between add_months(sysdate, -12*65) and add_months(sysdate, -12*65) + 30
从逻辑上讲,你想把出生日期加65岁,然后检查它是否在今天到30天之间。Oracle只有add_months函数,没有add_years,所以需要乘以12。最后,我将add_months移到右侧;如果优化器很聪明,它将只进行一次计算,而不是每行一次。如果在"出生日期"上定义了索引,则不将函数应用于该列可以使用索引。