mysql 怎么用SQL语句将老身份证号15位补位到新身份证号18...

时间:2023-05-27 10:42:40  热度:0°C

一、15位的身份证和18位的身份证的区别是什么?

只有15位号码的就是第一代身份证,而18位号码的则是第二代身份证。15位的身份证和18位的身份证的区别是:第二代身份证比第一代身份证增加了出生年份中的前两位数字和最后一位数字校验码。 18位的第二代身份证号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码、八位数字出生日期码、三位数字顺序码和一位数字校验码。 地址码(前六位数):表示身份证编码对象常住户口所在省份、地市,以及县(市、旗、区)的行政区划代码,按照GB/T2260的规定执行。其中:前1、2位数字表示所在省份的代码; 第3、4位数字表示所在地市的代码; 第5、6位数字表示:所在县(市、旗、区)的代码。 出生日期码(第七位至十四位):表示身份证编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。 顺序码(第十五位至十七位):表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。 校验码(第十八位数):作为尾号的校验码,是由身份证号码编制单位按统一的公式计算出来的,如果***的尾号是0-9,都不会出现Ⅹ,但如果尾号是10,那么就得用Ⅹ来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用Ⅹ来代替10,可以保证公民的身份证符合国家标准。

二、15位的身份证每位都代表什么?18位的身份证每位都代表什么?

15位身份证号码各位的含义/ (1)前1、2位数字表示:省、自治区、直辖市代码; (2)第3、4位数字表示:位地级市、盟、自治州代码; (3)第5、6位数字表示:县、县级市、区代码; (4)第7—12位数字表示:出生年月日 (年份简写,只显示最后2位) (5)第13-15位数字表示:校检码,其中15位男为单数,女为双数; 18位身份证号码各位的含义: (1)前1、2位数字表示:所在省(直辖市、自治区)的代码; (2)第3、4位数字表示:所在地级市(自治州)的代码; (3)第5、6位数字表示:所在区(县、自治县、县级市)的代码; (4)第7—14位数字表示:出生年、月、日; (5)第15、16位数字表示:所在地的派出所的代码; (6)第17位数字表示性别:奇数表示男性,偶数表示女性; (7)第18位数字是校检码:也有的说是个人信息码,不是随计算机的随机产生,它是 用来检验身份证的正确性。校检码可以是0—9的数字,有时也用x表示。

三、使用sql对老身份证进行补位。

1、15位老身份证号码

2、执行sql语句,身份证号补位(老身份证号15位补位到新身份证号18位)

  • UPDATE person_catalog_info_s SET ID_CARD = CONCAT
  • (
  • SUBSTRING(ID_CARD/1/6)/ 19 /SUBSTRING(ID_CARD/7/9)/SUBSTRING( 10X98765432 /
  • (CAST(SUBSTRING(ID_CARD/1/1)AS SIGNED)*7+
  • CAST(SUBSTRING(ID_CARD/2/1)AS SIGNED)*9+
  • CAST(SUBSTRING(ID_CARD/3/1)AS SIGNED)*10+
  • CAST(SUBSTRING(ID_CARD/4/1)AS SIGNED)*5+
  • CAST(SUBSTRING(ID_CARD/5/1)AS SIGNED)*8+
  • CAST(SUBSTRING(ID_CARD/6/1)AS SIGNED)*4+
  • 1*2+
  • 9*1+
  • CAST(SUBSTRING(ID_CARD/7/1)AS SIGNED)*6+
  • CAST(SUBSTRING(ID_CARD/8/1)AS SIGNED)*3+
  • CAST(SUBSTRING(ID_CARD/9/1)AS SIGNED)*7+
  • CAST(SUBSTRING(ID_CARD/10/1)AS SIGNED)*9+
  • CAST(SUBSTRING(ID_CARD/11/1)AS SIGNED)*10+
  • CAST(SUBSTRING(ID_CARD/12/1)AS SIGNED)*5+
  • CAST(SUBSTRING(ID_CARD/13/1)AS SIGNED)*8+
  • CAST(SUBSTRING(ID_CARD/14/1)AS SIGNED)*4+
  • CAST(SUBSTRING(ID_CARD/15/1)AS SIGNED)*2)%11+1/1))
  • WHERE LENGTH(ID_CARD)=15/
  • 3、执行后结果。

    温馨提示:
    1. 高品质文库网仅提供《mysql 怎么用SQL语句将老身份证号15位补位到新身份证号18...》全文中的部分公开内容,版权归原著者或相关公司所有。
    2. 以上信息来源于互联网免费公开的渠道,若文章所含内容侵犯了您的版权或隐私,请通知我们立即删除。
    3. 当前页面地址:https://www.gpinxiao.vip/doc/d7c6da27314920a7.html 复制内容请保留相关链接。