我试图计算一个人在数据库中的年龄.
我们假设有这个简单的表格:
student(id, birth_date);
Run Code Online (Sandbox Code Playgroud)
其中id是主键(实际上表格更复杂但我简化了它).
我想知道一个人多大年纪:
select id, datediff(curdate(),birth_date)
from student
Run Code Online (Sandbox Code Playgroud)
但是它会在几天内返回结果,而不是几年.我可以将它除以365:
select id, datediff(curdate(),birth_date) / 365
from student
Run Code Online (Sandbox Code Playgroud)
但它返回一个浮点值,我想要一个整数.
所以我可以计算年数:
select id, year(curdate())-year(birth_date)
from student
Run Code Online (Sandbox Code Playgroud)
但是有一个问题:比如现在是5月,如果一个人在1970年6月出生的战争他还有31年而不是32岁,但表达式返回32.
我不能摆脱这个问题,有人可以帮我吗?
mysql ×1