一尘不染

在MySQL中计算年龄(InnoDb)

mysql

如果我的出生日期以表格的形式存储在表格中,dd-mm-yyyy并且从当前日期中减去该日期,那么返回的日期格式是什么?

如何使用这种返回的格式来计算某人的年龄?


阅读 253

收藏
2020-05-17

共1个答案

一尘不染

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

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

考虑leap年时不太精确:

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