当前位置:Gxlcms > 数据库问题 > Mysql 根据出生日期计算年龄

Mysql 根据出生日期计算年龄

时间:2021-07-01 10:21:17 帮助过:9人阅读

365.2422 天,下面计算年龄时会用到这个数字。

  1582年3月1日,格里高利颁发了改历命令:内容是:

  一、1582年10月4日后的一天是10月15日,而不是10月5日,但星期序号仍然连续计算:10月4日是星期四,第二天10月15日是星期五。这样,就把从公元325年以来积累的老账一笔勾销了。

  二、为避免以后再发生春分飘离的现象,改闰年方法为: 凡公元年数能被4整除的是闰年,但当公元年数后边是带两个“0”的“世纪年”时,必须能被400整除的年才是闰年。

MySQL计算年龄有好多种方式,依次总结下,可以根据自己的业务需要和喜好选择使用。

方法一:

SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)), %Y)+0 AS age

使用TO_DAYS()和FROM_DAYS()两个函数完成日期和天数之间的转换,最后取日期中的年分,语句末尾的 +0 是为了去掉日期格式转换之后 前面的 0 。

改进:

SELECT YEAR(FROM_DAYS(DATEDIFF(NOW(),birthday)) )FROM employee_out;

方法二:

SELECT YEAR(CURDATE())-YEAR(2019-02-02)-(RIGHT(CURDATE(),5)<RIGHT(2019-02-02,5));

这样处理是为了计算当前年小于需要计算的年份的情况,当当前年小于需要计算的年份时,查询的结果为负数。

方法三:

SELECT FLOOR(DATEDIFF(CURDATE(), ‘1993-01-23‘)/365.2422) 

算出天数除以公历一年的天数,下取整,计算出实际年龄。

方法四:(推荐)

SELECT TIMESTAMPDIFF(YEAR,1993-01-02,CURDATE())

计算日期之间相差的年数,即为年龄。

 

Mysql 根据出生日期计算年龄

标签:now()   timestamp   div   查询   post   业务   body   pos   基础   

人气教程排行