mysql中根据出生日期计算其年龄的方法
mysql中根据出生日期计算其年龄的方法
mysql中要想计算一个人的年龄,相当于当前日期的年和出生日期之间的差。如果当前日期的日历年比出生日期早,则减去一年。以下查询显示了出生日期、当前日期和年龄数值的年数字。
mysql>SELECT name,birth,CURDATE(),
->(YEAR(CURDATE())-YEAR(birth))
->-(RIGHT(CURDATE(),5)<RIGHT(birth,5))
->AS age
->FROM pet;
+----------+------------+------------+------+
name|birth|CURDATE()|age|
+----------+------------+------------+------+
Fluffys|1993-02-04|2009-10-28|10|
Claws|1994-03-17|2009-10-28|9|
Buffy|1989-05-13|2009-10-28|14|
Fang|1990-08-27|2009-10-28|12|
Bowser|1989-08-31|2009-10-28|13|
Chirpy|1998-09-11|2009-10-28|4|
Whistler|1997-12-09|2009-10-28|5|
Slim|1996-04-29|2009-10-28|7|
Puffball|1999-03-30|2009-10-28|4|
+----------+------------+------------+------+
此处,YEAR()提取日期的年部分,RIGHT()提取日期的MM-DD(日历年)部分的最右面5个字符。比较MM-DD值的表达式部分的值一般为1或0,如果CURDATE()的年比birth的年早,则年份应减去1。