数据库中保存着一个人的身份证号码、出生日期、性别等资料,现在由于担心在录入资料时出现错误,所以要核对资料的正确性,要示判断身份证号码中的出生日期、性别和数据库中录入的出生日期、性别是否相符
我觉得用SQL查不出来,需要用存储过程才行有谁能给个写法?

解决方案 »

  1.   

    用SQL还是可以吧,判断身份证号是15位还是18位,主要是年取4位还是2位及性别,再与
    你的表中数据对比即可
    mid(身份证号,7,if(length(身份证号)=15,6,10):出生日
      

  2.   

    SQL 可以查出来。if(length(身份证号)=15,concat('19',mid(身份证号,7,6)),mid(身份证号,7,8))   --  出生日期
    if(length(身份证号)=15,mid(身份证号,15,1),mid(身份证号,17,1)) -- 性别,奇男,偶女
      

  3.   

    假设你的 出生日期,是日期型,性别是数字 0女,1男select *
    from xxx
    where if(length(身份证号)=15,concat('19',mid(身份证号,7,6)),mid(身份证号,7,8))!=出生日期
    and if(length(身份证号)=15,mid(身份证号,15,1),mid(身份证号,17,1)) % 2 != 性别
      

  4.   

    mid(身份证号,7,if(length(身份证号)=15,6,8):出生日
    性别不太好判断,结尾有字母
      

  5.   

    查了一下
    15位
    ssddxxyymmddnnp
    18位
    ssddxxyyyymmddnnpx
    最新20位暂缺
    式中
    s 省、直辖市、自治区
    d 市、地区
    x 县
    y 出生年
    m 出生月
    d 出生日
    n 顺号
    p 性别
    x 较验码18位中第17位为性别