我正在尝试计算数据库中一个人的年龄。
让我们假设有这个简单的表:
student(id, birth_date);
其中 id 是主键(确实该表更复杂,但我已对其进行了简化)。
我想知道一个人多大了:
select id, datediff(curdate(),birth_date)
from student
但它会以天为单位返回结果,而不是以年为单位。我可以将其除以 365:
select id, datediff(curdate(),birth_date) / 365
from student
但它返回一个浮点值,我想要一个整数。
所以我可以计算年份:
select id, year(curdate())-year(birth_date)
from student
但是有一个问题:比如现在是五月,如果一个人战争出生于 1970 年 6 月,他还有 31 岁而不是 32,但表达式返回 32。
我无法摆脱这个问题,谁能帮帮我?