开发者社区 问答 正文

在MySQL中计算年龄(InnoDb)

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

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

展开
收起
保持可爱mmm 2020-05-11 13:46:31 427 分享 版权
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 来源:stack overflow

    2020-05-11 13:46:50
    赞同 1 展开评论