mysql利用身份证号计算年龄
身份证号包含着出生日期,我们可以通过身份证号与当前日期来计算人的年龄。
现有数据表:
计算规则为先取出年份与当前年份作差,再比较当前日期与身份证上的月日(即判断此人是否已经过了国历生日),决定是否需要减去一岁,已经过了生日就不用减掉了。
计算年龄的sql如下:
// An highlighted block=
select id,
id_number,
(substring(now(),1,4)-substring(id_number,7,4))-(substring(id_number,11,4)-date_format(now(),'%m%d')>0) as age
from t_test
运行了sql的结果为:
当前运行的日期为2018-11-27。
同一年出生,但具体日期在当前月日前与后的身份证计算出来的年龄会相差1。