以整数形式获取MySQL中两个日期之间的年份差异
我正在尝试计算数据库中一个人的年龄。
让我们假设有一个简单的表:
student(id, birth_date);
id是主键(实际上,表更复杂,但我已经对其进行了简化)。
我想要一个人多大年龄:
select id, datediff(curdate(),birth_date) from student
但是它返回的结果是几天而不是几年,我可以将其除以365:
select id, datediff(curdate(),birth_date) / 365from 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
在几个月的差异,更换YEAR
用MONTH
,日子替换YEAR
用DAY
希望有帮助!
以上是 以整数形式获取MySQL中两个日期之间的年份差异 的全部内容, 来源链接: utcz.com/qa/429169.html