行业知识
MySQL根据出生日期计算年龄的五种方法比较
2026-11-12 09:13:26
来源:互联网转载
方法一
SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)), '%Y')+0 AS age
���陷,当日期为未来日期时结果为0,而不是负数;
()这里用了5个函数和两个运算符。
方法二
SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(birthday, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d')解决了方法一为负数的问题,但看起来更复杂;这里使用了6个函数和3个运算符。
()改良后方法一和方法二
SELECT year( from_days( datediff( now( ), birthdate)));SELECT YEAR(CURDATE())-YEAR(birthday)-(RIGHT(CURDATE(),5)