mysql 自定义函数 身份证号转年龄(支持15/18位身份证)

函数

FUNCTION `idcard2age`(`idcard` varchar(255)) RETURNS int(10)
BEGIN

	if idcard regexp '[0-9]{18}|[0-9]{17}X|[0-9]{15}' then
		if(length(idcard)=18)then
			return ifnull(timestampdiff(YEAR,substring(idcard,7,8),now()),-1);
		elseif(length(idcard)=15)then
			return ifnull(timestampdiff(YEAR,concat('19',substring(idcard,7,6)),now()),-1);
		end if;
	end if;

	RETURN -1;
END

虚拟字段

if(length(`证件号码`)=18,ifnull(timestampdiff(YEAR,substring(`证件号码`,7,8),now()),-1) , if(length(`证件号码`)=15,ifnull(timestampdiff(YEAR,concat('19',substring(`证件号码`,7,6)),now()),-1),-1))

posted on   小馬過河﹎  阅读(44)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示