预言家会在未来30天内找到65岁生日的人



我正试图从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移到右侧;如果优化器很聪明,它将只进行一次计算,而不是每行一次。如果在"出生日期"上定义了索引,则不将函数应用于该列可以使用索引。

最新更新