且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在MySQL中计算年龄(InnoDb)

更新时间:2023-08-21 19:45:04

如果该值存储为DATETIME数据类型:

If the value is stored as a DATETIME data type:

SELECT YEAR(CURRENT_TIMESTAMP) - YEAR(dob) - (RIGHT(CURRENT_TIMESTAMP, 5) < RIGHT(dob, 5)) as age 
  FROM YOUR_TABLE

在考虑leap年时,不够精确:

Less precise when you consider leap years:

SELECT DATEDIFF(CURRENT_DATE, STR_TO_DATE(t.birthday, '%d-%m-%Y'))/365 AS ageInYears
  FROM YOUR_TABLE t