最新公告
  • 欢迎加入中国站长资源网团队,精品资源持续增加!立即加入我们
  • 通过身份证号计算年龄SQL语法

    广告!请自辨真伪 广告!请自辨真伪 广告!请自辨真伪 广告!请自辨真伪 广告!请自辨真伪 广告!请自辨真伪 广告!请自辨真伪 广告!请自辨真伪 广告!请自辨真伪 广告!请自辨真伪

    1.截取身份证号上的出生日期

    身份证一般为18位数和15位数

    18位数身份证的第7-10位数是出生年份,第11-14位数是出生月日,所以18位身份证的年龄计算如

    substring(now(),1,4)-substring(idcard,7,4))-(substring(idcard,11,4)-date_format(now(),'%m%d')>0

    15位数身份证的第7-8位数是出生年份,但是少了两位。15位数身份证把1930就简化成30少了前面的19,并且15位身份证全部都在19XX年颁。 第9-12位数是出生月日,所以15位身份证的年龄计算如下

    substring(now(),1,4)-(1900+substring(idcard,7,2)))-(substring(idcard,9,4)-date_format(now(),'%m%d')>0

    2.加if判断18位和15位

    MySQL的if语法比较像JAVA里的三元表

    IF(条件,条件为true执行,条件为false执行)

    MySQL的字符串长度获取方法

    CHAR_LENGTH(字符串)

    3.最终的sql语句

    select 
    id,
    if (CHAR_LENGTH(idcard)<18,(substring(now(),1,4)-(1900+substring(idcard,7,2)))-(substring(idcard,9,4)-date_format(now(),'%m%d')>0),(substring(now(),1,4)-substring(idcard,7,4))-(substring(idcard,11,4)-date_format(now(),'%m%d')>0)) as age,
    idcard
    from t_table;

    如果遇到资源下载失效,请复制当前文章链接类型客服处理!
    中国站长资源网 » 通过身份证号计算年龄SQL语法

    常见问题FAQ

    【点击查看】免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    【点击查看】提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    【点击查看】开通终身至尊下载源码 “不完整” 或 “不能用” 怎么办?
    非常抱歉,你有权利告诉本站,但是本站有选择处理或者不处理的权力,如无法接受请不要开通本站会员。
    【点击查看】开通终身会员能下载全站资源码?
    可以100%下载全站源码资源的,除部分失效资源,失效的可以联系客服尝试恢复。