MySQL提取身份证号码中的生日和性别

设表格为t身份证号码列为sfz,生日列为sr,性别列为xb:

UPDATE `t` SET `sr`=cast(substring(sfz,7,8) as date) WHERE 1
//提取表t中sfz列数值第7位开始的8位数字并转换为date格式,更新到sr列
UPDATE `t` SET `xb` = MOD(substring(`sfz`,17,1),2) WHERE 1
//提取表t中sfz列数值第17位开始的1位数字并对2取余(奇数为1,男;偶数为0,女)

仅对18位身份证号码有效

标签: mysql, 身份证