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。