PL/SQL:如何在知道名为 Birth_Date 的列的情况下计算 AGE?

use*_*987 1 plsql

我有一个由一列组成的表格(BIRTH_DATE)。我如何使用 sysdate 从我BIRTH_DATEGROUP BY它们的所有行中减去?

更清楚:

这是我获取的内容,现在我想在下表中为所有行添加一个 AGE 列

ID     Birth_Date
___    ___________
1       02-JAN-63
2       23-OCT-31
3       30-DEC-35
4       06-MAY-83
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Wol*_*olf 5

只需birth_date从 中减去sysdate

select id, (sysdate - birth_date) / 365 age from my_table;
Run Code Online (Sandbox Code Playgroud)

减去日期就得到天数,因此除以 365 将得到十进制年份。


Jef*_*emp 5

要根据通常的标准(即根据自出生以来经过的日历年数)获取一个人的年龄,并考虑闰年,您可以使用 MONTHS_BETWEEN 运算符:

SELECT id, MONTHS_BETWEEN(sysdate, birth_date) / 12 age FROM my_table;
Run Code Online (Sandbox Code Playgroud)