mssql2000 身份证号码验证
CREATE VIEW thisDate
--返回当前日期,因为自定义函数中不能使用GETDATE()
AS
SELECT convert(VARCHAR(8),getdate(),112) AS aDate Create function Check_Sfz(@sfzh char(18))
/*mssql2000
返回值=0,身份证校验正确
1:位数不对
2:含有不规则字符
3:日期不对
4:校验位不对
*/
returns tinyint
as
begin
set @sfzh=ltrim(rtrim(@sfzh))
declare @r char(1),@resu TINYINT,@thisDate VARCHAR(8)
declare @i INT
SELECT @thisDate=aDate FROM thisDate
if len(@sfzh) <> 18
set @resu=1
ELSE
BEGIN
IF isnumeric(substring(@sfzh,1,17))=0
--检查前17位是否为数字
set @resu=2
ELSE IF isDate(substring(@sfzh,7,8))=0
--日期是否符合规则
set @resu=3
ELSE IF (substring(@sfzh,7,4)<'') OR (substring(@sfzh,7,8)>=@thisDate)
--日期是否符合逻辑
SET @resu=3
else
BEGIN
--检查第18位数据的正确性
set @i = cast(substring(@sfzh,1,1) as int) * 7
+ cast(substring(@sfzh,2,1) as int) * 9
+ cast(substring(@sfzh,3,1) as int) * 10
+ cast(substring(@sfzh,4,1) as int) * 5
+ cast(substring(@sfzh,5,1) as int) * 8
+ cast(substring(@sfzh,6,1) as int) * 4
+ cast(substring(@sfzh,7,1) as int) * 2
+ cast(substring(@sfzh,8,1) as int) * 1
+ cast(substring(@sfzh,9,1) as int) * 6
+ cast(substring(@sfzh,10,1) as int) * 3
+ cast(substring(@sfzh,11,1) as int) * 7
+ cast(substring(@sfzh,12,1) as int) * 9
+ cast(substring(@sfzh,13,1) as int) * 10
+ cast(substring(@sfzh,14,1) as int) * 5
+ cast(substring(@sfzh,15,1) as int) * 8
+ cast(substring(@sfzh,16,1) as int) * 4
+ cast(substring(@sfzh,17,1) as int) * 2
set @i = @i - @i/11 * 11
set @r = (case @i
when 0 then '' when 1 then '' when 2 then 'x' when 3 then ''
when 4 then '' when 5 then '' when 6 then '' when 7 then ''
when 8 then '' when 9 then '' when 10 then '' else '/' end)
IF @r=lower(substring(@sfzh,18,1)) set @resu=0
ELSE SET @resu=4--验证位不正确
end
end
return(@resu)
END
mssql2000 身份证号码验证的更多相关文章
- js正则实现二代身份证号码验证详解
js正则实现二代身份证号码验证详解 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至 ...
- C#实现身份证号码验证的方法
本文实例讲述了C#实现身份证号码验证的方法.分享给大家供大家参考.具体实现方法如下: 随着现在互联网的发展,越来越多的注册用户的地方都用到了身份证,那么对于输入的身份证如何验证呢?看下面的代码,其实很 ...
- 是否以某字符串结尾 是否以某字符串开始 是否是整数 裁减字符串空格 是否是浮点数 是否所有字符为数字类型 是否为空 是否是EMAIL 是否是电话号码 身份证号码验证-支持新的带x身份证 日期验证
/* 1.是否以某字符串结尾 endsWith(theStr,endStr) @param theStr:要判断的字符串 @param endStr:以此字符串结尾 @return boolean; ...
- Java 身份证号码验证
身份证号码验证 1.号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码 2.地址码(前 ...
- Javascript身份证号码验证
"来来来,坐这儿". "什么?我可是有身份的人,怎么能和你坐一块儿".沛笠晃了晃手里的身份证,不屑说道. "你咋不上天呢?有身份还喝油条吃豆浆&quo ...
- js实现身份证号码验证
/*根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数 ...
- js身份证号码验证
验证身份证号码的有效性,包含15位和18位: 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列 ...
- 【Java】身份证号码验证
代码引用自:https://gitee.com/appleat/codes/ynrtqujv0wfgesm8ia9b547 package xxx; /** * Created by wdj on 2 ...
- Java实现身份证号码验证源码分享
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...
随机推荐
- MFC ADO连接Sql Server数据库报无效指针的问题
相关症状: Win7sp1上编译的ADO程序无法在低版本系统上运行,创建ADO时提示错误:0x80004002 解决办法如下: 1.下载: http://download.microsoft.c ...
- UVA 1151 买还是建(最小生成树)
买还是建 紫书P358 [题目链接]买还是建 [题目类型]最小生成树 &题解: 这题真的心累,看了3天,最后照着码还是wa,先放lrj代码,以后再看吧 &代码: // UVa1151 ...
- spring mvc 4 校验
一.controller中添加: @ResourceGatewayValidator gatewayValidator; @RequestMapping(value = "/gateway/ ...
- msqlserver 千万级别单表数据去掉重复记录使用临时表
由于上周末小写把数据数据重复写入数据库,没办法,得去重! 最新使用的语句: use data set nocount ondelete DoRecordProperty from( select TI ...
- cocos2dx day 3 - Chapter5 Scene
写在前面 越来越懒了,才3天,主要是cocos2dx官网的文章写的还是不是太完美,发现一段代码有个笔误,还有好几处写得不是很清楚的,所以有点泄气,不想继续读下去,不过为了我的第一款手游,一切困难都要先 ...
- ios 逆向收录
lldb 远程调试环境搭建:http://www.cnblogs.com/csutanyu/p/3653252.html
- NSTimer的使用[zhuang]
NSTimer 的头文件 /* NSTimer.h Copyright (c) 1994-2015, Apple Inc. All rights reserved. */ #import <Fo ...
- C++设计模式-Strategy策略模式
Strategy策略模式作用:定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户. UML图: Strategy模式将逻辑(算法)封装到一个类(Cont ...
- IOS 中openGL使用教程1(openGL ES 入门篇 | 搭建openGL环境)
OpenGL版本 iOS系统默认支持OpenGl ES1.0.ES2.0以及ES3.0 3个版本,三者之间并不是简单的版本升级,设计理念甚至完全不同,在开发OpenGL项目前,需要根据业务需求选择合适 ...
- setContentView R can not be resovled
原因:gen包下没有自动生成R.java的资源文件 解决办法:再次新建android application project,默认Theme为Holo Light With Dark Action B ...