以整数形式获取MySQL中两个日期之间的年份差异

我正在尝试计算数据库中一个人的年龄。

让我们假设有一个简单的表:

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

但是有一个问题:例如现在是5月,如果一个战争发生在1970年6月,他仍然31岁而不是32岁,但表达式返回32。

我不能摆脱这个问题,有人可以帮我吗?

回答:

对于遇到此问题的任何人:

可以完成的另一种方法是:

SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student

在几个月的差异,更换YEARMONTH,日子替换YEARDAY

希望有帮助!

以上是 以整数形式获取MySQL中两个日期之间的年份差异 的全部内容, 来源链接: utcz.com/qa/429169.html

回到顶部