mysql身份证校验码_MySql整理篇之身份证提取生日性别

应用场景

某些场景中,需要从国人身份证号中提取出生日期及性别,现整理出MySql版本的提取方法,了解其规则后,其他数据库异曲同工。

目前国人身份证分为一代和二代,一代15位,二代18为。基本区分如下:

18位证件号

1~6位为地区省市县编码,7~14位出生年月日,15~16所在地派出所,17位性别(奇男、偶女),18位为校验码

15位证件号

1~6位为地区省市县编码,7~12位出生年月日(年为两位),13~15为顺序码,末位区分男女(奇男、偶女)。

解决方案

解决方案为根据证件号规则,创建两个函数:fun_idno_birthday、fun_idno_sex提取。

出生日期提取

通过创建函数fun_idno_birthday获取,具体代码如下:

DELIMITER $$

DROP FUNCTION IF EXISTS fun_idno_birthday$$

CREATE FUNCTION fun_idno_birthday(idno VARCHAR(25)) RETURNS VARCHAR(10) CHARSET utf8

BEGIN

DECLARE v_birth VARCHAR(10) DEFAULT NULL;

DECLARE v_birth_1 VARCHAR(10) DEFAULT NULL;

DECLARE v_birth_2 VARCHAR(10) DEFAULT NULL;

IF idno IS NULL OR ''

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
全国身份证前六位、省份、城市、地区、区号、邮编-编码大全_.sql -- ---------------------------- -- Records of id_city -- ---------------------------- INSERT INTO `id_city` VALUES ('1', '110000', '北京市', '北京市', '北京市', '京', '10', '100000'); INSERT INTO `id_city` VALUES ('2', '110100', '北京市', '北京市', '市辖区', '京', '10', ''); INSERT INTO `id_city` VALUES ('3', '110101', '北京市', '北京市', '东城区', '京', '10', '100000'); INSERT INTO `id_city` VALUES ('4', '110102', '北京市', '北京市', '西城区', '京', '10', '100000'); INSERT INTO `id_city` VALUES ('5', '110103', '北京市', '北京市', '崇文区', '京', '10', '100000'); INSERT INTO `id_city` VALUES ('6', '110104', '北京市', '北京市', '宣武区', '京', '10', '100000'); INSERT INTO `id_city` VALUES ('7', '110105', '北京市', '北京市', '朝阳区', '京', '10', '100000'); INSERT INTO `id_city` VALUES ('8', '110106', '北京市', '北京市', '丰台区', '京', '10', '100000'); INSERT INTO `id_city` VALUES ('9', '110107', '北京市', '北京市', '石景山区', '京', '10', '100000'); INSERT INTO `id_city` VALUES ('10', '110108', '北京市', '北京市', '海淀区', '京', '10', '100000'); INSERT INTO `id_city` VALUES ('11', '110109', '北京市', '北京市', '门头沟区', '京', '10', '102300'); INSERT INTO `id_city` VALUES ('12', '110111', '北京市', '北京市', '房山区', '京', '10', '102400'); INSERT INTO `id_city` VALUES ('13', '110112', '北京市', '北京市', '通州区', '京', '10', '101100'); INSERT INTO `id_city` VALUES ('14', '110113', '北京市', '北京市', '顺义区', '京', '10', '101300'); INSERT INTO `id_city` VALUES ('15', '110114', '北京市', '北京市', '昌平区', '京', '10', '102200'); INSERT INTO `id_city` VALUES ('16', '110115', '北京市', '北京市', '大兴区', '京', '10', '102600'); INSERT INTO `id_city` VALUES ('17', '110116', '北京市', '北京市', '怀柔区', '京', '10', '101400');

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值