oracle 给出两个日期计算年龄
时间: 2023-07-08 07:46:40 浏览: 181
oracle根据生日自动求年龄的算法
5星 · 资源好评率100%
计算两个日期之间的年龄,可以先使用 MONTHS_BETWEEN 函数计算两个日期之间的月数,然后将月数转换为年龄。以下是计算年龄的 SQL 语句:
```
SELECT TRUNC(MONTHS_BETWEEN(end_date, start_date) / 12) AS age_years,
TRUNC(MOD(MONTHS_BETWEEN(end_date, start_date), 12)) AS age_months,
TRUNC(MOD(end_date - ADD_MONTHS(start_date, TRUNC(MONTHS_BETWEEN(end_date, start_date) / 12) * 12), 30)) AS age_days
FROM dual;
```
其中 start_date 和 end_date 分别代表两个日期。该 SQL 语句使用 MONTHS_BETWEEN 函数计算两个日期之间的月数,然后将月数转换为年、月、日的组合。其中 EXTRACT 函数可以分别提取年、月、日部分,MOD 函数可以计算余数,ADD_MONTHS 函数可以将日期增加指定的月份数。最后,使用 TRUNC 函数可以将小数部分截取掉,得到整数部分。
阅读全文