该数据库保存了所有年龄段的人的记录,包括 1 岁以下的 child ,其中月份很重要。
使用
SELECT TIMESTAMPDIFF(YEAR, dob, CURDATE()) AS age;
您遇到的问题是任何 < 1 年的人都显示为 0;
使用
SELECT TIMESTAMPDIFF(MONTH, dob, CURDATE()) AS age;
任何 1 岁以上的人都会在几个月后出现,因此 43 岁的人的年龄将超过 500 个月
使用
SELECT TIMESTAMPDIFF(MONTH, dob, CURDATE()) / 12 AS age;
您可以获得一些结果,例如 3 个月大的 child 为 0.25,43 岁以上的 child 为 43.25
我想要实现的目标是这样的
- 43岁3m
- 0y 3m
- 或者对于 < 1 年的人甚至只是 3m
如何在 mysql 查询中表达这样的内容?
最佳答案
SELECT IF(TIMESTAMPDIFF(MONTH, dob, CURDATE())>12,TIMESTAMPDIFF(MONTH, dob, CURDATE())/12+ 'yeasrs old' , TIMESTAMPDIFF(MONTH, dob, CURDATE())+'months old')
关于mysql - MYSQL中如何判断两个日期之间的年月差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23568916/