MySQL根据身份证号码计算出生日期和年龄

中国大陆的18位身份证号码中第7到第14位表示出生日期,格式为 YYYYMMDD。

提取并转换为 DATE 类型:

复制代码
SELECT 
    id_card,
    STR_TO_DATE(SUBSTRING(id_card, 7, 8), '%Y%m%d') AS birth_date
FROM users;

在 MySQL 中,从身份证号提取出生日期后计算当前年龄(整岁),最推荐、最准确的方式是使用 TIMESTAMPDIFF() 函数,它能精确处理闰年、月份天数差异等问题。

计算年龄:

复制代码
SELECT 
    TIMESTAMPDIFF(YEAR, 
        STR_TO_DATE(SUBSTRING(id_card, 7, 8), '%Y%m%d'), 
        CURDATE()
    ) AS age
FROM your_table;
相关推荐
Mr_Xuhhh12 小时前
MySQL核心知识梳理:从连接到查询的完整指南
数据库·sql·mysql
wsxlgg12 小时前
MySQL中count(*)、count(1)、count(字段)的区别
数据库·mysql
_F_y18 小时前
MySQL用C/C++连接
c语言·c++·mysql
pengdott18 小时前
Oracle RAC内存融合技术深度解析:集群性能的幕后引擎
数据库·oracle
csudata19 小时前
绿色便携版PostgreSQL发行版重磅发布
数据库·postgresql
阳光九叶草LXGZXJ19 小时前
达梦数据库-学习-48-DmDrs控制台命令(同步之Manager、CPT模块)
linux·运维·数据库·sql·学习
五岳19 小时前
DTS按业务场景批量迁移阿里云MySQL库实战(上):技术选型和API对接
mysql·阿里云·dts
我科绝伦(Huanhuan Zhou)20 小时前
脚本再升级,兼容Oracle 26ai一键安装
数据库·oracle
野生绿箭侠20 小时前
Ncos 2.3.2 版本集成达梦数据库
数据库
仍然.21 小时前
MYSQL--约束
数据库·mysql