我需要帮助进行查询,该查询将从表中返回所有人当前为 25 岁且出生日期在 2 个月内(一个月中的任何时间)的结果。
我目前的查询是:
SELECT * from account_info
where to_char(SYSDATE,'YYYY')-to_char(birth_date,'YYYY') = 25
AND Months_between(TO_DATE(SYSDATE),TO_DATE(birth_date)) = 2
数据库中birth_date的格式为11-NOV-87
这没有返回我需要的正确月份,因为这也在计算年份,结果是 297 个月。我之前使用的是:
AND abs(to_char(SYSDATE,'MM')-to_char(birth_date,'MM')) = 2`
这显示了正确的结果,但我不确定如果当前SYSDATE = December
和birth_date = February
.
如何使用正确的日期计算仅返回当前 25 岁且其生日距 SYSDATE 2 个月的人?