调用示例:

SELECT  dbo.[fn_IDCardChk]('123') 

/*
---------------------------
校验身份证号是否有效 成功返回1 失败返回0Jackerson
---------------------------
*/
CREATE FUNCTION [dbo].[fn_IDCardChk] ( @IDCard VARCHAR(18) )
RETURNS BIT
ASBEGINIF LEN(@IDCard) <> 15AND LEN(@IDCard) <> 18--身份证号只有15或18位RETURN(0);--如果是15位身份证 则只验证日期和是否数字格式IF LEN(@IDCard) = 15IF ISDATE('19' + SUBSTRING(@IDCard, 7, 6)) = 0OR ISNUMERIC(@IDCard) = 0RETURN(0);ELSERETURN(1);--18位身份证 验证日期 校验位IF ISDATE(SUBSTRING(@IDCard, 7, 8)) = 0OR ISNUMERIC(SUBSTRING(@IDCard, 1, 17)) = 0--验证日期和前17位是否数字格式RETURN(0);--验证校验位开始DECLARE @validFactors VARCHAR(17) ,@validCodes VARCHAR(11) ,@i TINYINT ,@iTemp INT;SELECT  @validFactors = '79A584216379A5842',@validCodes = '10X98765432', @i = 1, @iTemp = 0;WHILE @i < 18BEGINSELECT  @iTemp = @iTemp+ CAST(SUBSTRING(@IDCard, @i, 1) AS INT)* ( CASE SUBSTRING(@validFactors, @i, 1)WHEN 'A' THEN 10ELSE SUBSTRING(@validFactors, @i, 1)END ), @i = @i + 1;END;IF SUBSTRING(@validCodes, @iTemp % 11 + 1, 1) = RIGHT(@IDCard, 1)RETURN 1;ELSERETURN 0;RETURN NULL;END;GO

SQL 校验身份证号格式相关推荐

  1. SpringBoot自定义注解实现身份证号格式校验

    背景 ​ 身份证的组成部分较为复杂, 如果仅使用正则表达式的话, 有些情况也无法校验出来, 例如正确的证件号为513334200310119074, 如果把最后一位变成9, 则是一个错误的证件号, 但 ...

  2. JS校验手机号和身份证号格式

    1:校验手机号 //JS正则表达式校验手机号function isPoneAvailable(poneInput) {var myreg=/^[1][3,4,5,7,8][0-9]{9}$/;if ( ...

  3. js身份证号格式校验

    /***校验身份证号 @param {String} personnumber 身份证号码 @example: checkIdcard(pass); //return true | false; */ ...

  4. vue组件中校验身份证号,手机号和邮箱

    vue组件中校验身份证号,手机号和邮箱 直接上代码 一.在js文件中添加校验方式和方法 1. 身份证号码校验(说明,这个身份证校验的方式很精确,算法仔细推荐使用) export function id ...

  5. 验证身份证号 格式问题

    导入的时候 验证身份证号的格式问题 if(!sfzh.equals("")&&isIDNumber(sfzh) == false){returnMap.put(&q ...

  6. Java校验身份证号工具类

    直接上代码,该util可以校验身份证号,可以获取年龄.性别.出生日期. public class PersonIdCardUtil {/*** 省.直辖市代码表:* 11 : 北京 12 : 天津 1 ...

  7. mysql 校验 身份证_通过SQL校验身份证号码是否正确

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. select /*pspt_id为用户身份证号码*/ a.pspt_id /*判断用户身份 ...

  8. 【Flutter】Dart 校验身份证号合法性,根据身份证号获取年龄性别

    js版或OC.Java版的都容易找到,Dart版的比较少,mark一下吧. // 校验身份证合法性 bool verifyCardId(String cardId) {const Map city = ...

  9. 校验身份证号、手机号、银行卡号(TypeScript)

    工具开源仓库https://gitee.com/lililic/information_simulation_open 工具在线地址http://www.onetribe.top/si 1.银行卡号校 ...

最新文章

  1. 数据科学的完整学习路径—Python版
  2. Android-Ant自动编译打包android项目 -- 2 ----签名与渠道包
  3. MVC Razor模板引擎 @RenderBody、@RenderPage、@RenderSection及Html.RenderPartial、Html.RenderAction...
  4. 前端学习(2005)vue之电商管理系统电商系统之获取动态参数列表
  5. raspberry pi_用Raspberry Pi制作婴儿监视器
  6. C++/CX:类的继承
  7. mysql查询结果输出到文件
  8. 机器人(RPA路程自动化)RPA流程自动化和AI的区别。
  9. Mars3D开发基础学习:3DTiles三维模型
  10. win10右键卡顿原因_Win10桌面点右键一直卡顿转圈怎么解决
  11. 2021新年腊八祝福语短信
  12. IBM、Google、Oracle三巨头的公有云之殇(上)
  13. 如何用工具自动修复数字IC后端设计实现绕线后的Physical DRC_
  14. 【Python】用字母生成图像
  15. 西数宣布将绿盘并入蓝盘
  16. 如何解决Paypal多账号登录账户关联?
  17. 微信获取信息用户登录报错redirect_uri域名与后台配置不一致,错误码10003
  18. 使用vue报错Cannot use ‘in‘ operator to search for
  19. 面向对象程序设计c++版董正言张聪课本课后习题答案第六章
  20. 到底什么是链接,它起到了什么作用?

热门文章

  1. JavaEE——SSM框架整合实现学生信息注册案例
  2. iphonex适配游戏_iPhoneX王者荣耀适配问题 iPhoneX游戏问题详解
  3. 2星|稻盛和夫《经营十二条》:内容太水,看目录就可以了
  4. 通过贝壳物联,让小度或天猫精灵语音控制你的8266
  5. 关于网络上的刷钻方法
  6. 计算机保持在线的几种方法,还在为智能盒子上电影软件收费烦恼?教你几个盒子上看大片的方法...
  7. nodejs+vue+elementui鲜花销售商城管理系统410
  8. mac终端Login Incorrect问题
  9. 银行主要业务--负债业务
  10. 电子学会2023年3月青少年软件编程python等级考试试卷(三级)真题,含答案解析