相关疑难解决方法(0)

将MySQL中两个日期之间的年份差异作为整数

我试图计算一个人在数据库中的年龄.
我们假设有这个简单的表格:

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

20
推荐指数
3
解决办法
4万
查看次数

标签 统计

mysql ×1