当前位置:首页 » 编程语言 » sql验证身份证

sql验证身份证

发布时间: 2023-04-13 23:13:28

A. sql如何判断一串数字非身份证号码

1.身份证号码生成是有规则的,利用此规则在程序端就可以控制的;

2.若是查证一个身份证号码是否在数据库中,直接创建一个唯一索引,念扮然后SELECT查询即可仔埋灶;

3.身份证是有规则的,可以判断头部是否符合库能查到,以及中间液氏8位数字是否符合年月日的规则,身份证的字符个数。

B. sql 语句 验证身份证号码

帮你搜了一下,参考参考。

主要验证SQL数据库中已输入的15位 及18位 身份证号码的位数、出生年月日是否正确,
可以过滤出大部分的输入错误。

or (len(身份证号)=18 and (Substring(身份证号,7,2)<'19' or Substring(身份证号,7,2)>'20'
or (Substring(身份证号,11,2)>12)
or (Substring(身份证号,11,2) in (01,03,05,07,08,10,12) and Substring(身份证号,13,2)>31)
or (Substring(身份证号,11,2) in (04,06,09,11) and Substring(身份证号,13,2)>30)
or (Substring(身份证号,11,2)=02 and Substring(身份证号,13,2)>29)))
---------------------- 下面是针对 15位 及18位 身份证号码性别的验证语句 ------------------

-- Access 不支持 Substring 查询,可以替换为 mid 查询。
select 序号,姓名,身份证号,性别
from 身份表
where (((len(身份证号)=15) and (Substring(身份证号,15,1) in (1,3,5,7,9)) and 性别<>'男')
or ((len(身份证号)=15) and (Substring(身份证号,15,1) in (2,4,6,8,0)) and 性别<>'女'))
or (((len(身份证号)=18) and (Substring(身份证号,17,1) in (1,3,5,7,9)) and 性别<>'男')
or ((len(身份证号)=18) and (Substring(身份证号,17,1) in (2,4,6,8,0)) and 性别<>'女'))

---------------------- 下面是针对 15位 及18位 身份证号码位数与出生年月日的验证 ------------------

-- Access 不支持 Substring 查询,可以替换为 mid 查询。

select 序号,姓名,身份证号,性别
from 身份表
where (len(身份证号)<>15 and len(身份证号)<>18)
or (len(身份证号)=15 and ((Substring(身份证号,9,2)>12)
or (Substring(身份证号,11,2) > 31)
or (Substring(身份证号,9,2) in (01,03,05,07,08,10,12) and Substring(身份证号,11,2)>31)
or (Substring(身份证号,9,2) in (04,06,09,11) and Substring(身份证号,11,2)>30)
or (Substring(身份证号,9,2)=02 and Substring(身份证号,11,2)>29)))

C. sql sever 2008r2 中如何批量判断身份证真假

--建议你做成一个自定义函数,然后锋猛再调用
--区厅轿域编码的验证,你得有csounty_sar这个表才行,所以下面的代码,我去掉了这个
Declare@pspt_idVarchar(18)='52212019880722042X'
Select
case
/*判断身份证号码是否为18位*/
whenlen(@pspt_id)<>'18'then'身份证号码位数不对'
/*判断身份证号码前17位是否含除数字外的字符*/
whenISNUMERIC(substring(@pspt_id,1,17))=0then'身份证号码前17位格式不正确'
/*判断身份证的年份是否在合理范围内*/
whensubstring(@pspt_id,7,4)notbetween'1900'and'2014'then'身份证年份错误'
/*判断身份证的月份是否在合理范围内*/
whensubstring(@pspt_id,11,2)notbetween'01'and'12'then'身份证月份错误'
/*判断身份证日期是否在合理范围内*/
whenisdate(substring(@pspt_id,7,8))=0then'身份证日期错误'
/*判断身份证号码的第18位是否符合验证规则*/
when
(
substring(@pspt_id,1,1)*7+
substring(@pspt_id,2,1)*9+
substring(@pspt_id,3,1)*10+
substring(@pspt_id,4,1)*5+
substring(@pspt_id,5,1)*8+
substring(@pspt_id,6,1)*4+
substring(@pspt_id,7,1)*2+
substring(@pspt_id,8,1)*1+
substring(@pspt_id,9,1)*6+
substring(@pspt_id,10,1)*3+
substring(@pspt_id,11,1)*7+
substring(@pspt_id,12,1)*9+
substring(@pspt_id,13,1)*10+
substring(@pspt_id,14,1)*5+
银伏桥substring(@pspt_id,15,1)*8+
substring(@pspt_id,16,1)*4+
substring(@pspt_id,17,1)*2
)%11
<>
(
case
whensubstring(@pspt_id,18,1)='1'then'0'
whensubstring(@pspt_id,18,1)='0'then'1'
whensubstring(@pspt_id,18,1)in('X','x')then'2'
whensubstring(@pspt_id,18,1)='9'then'3'
whensubstring(@pspt_id,18,1)='8'then'4'
whensubstring(@pspt_id,18,1)='7'then'5'
whensubstring(@pspt_id,18,1)='6'then'6'
whensubstring(@pspt_id,18,1)='5'then'7'
whensubstring(@pspt_id,18,1)='4'then'8'
whensubstring(@pspt_id,18,1)='3'then'9'
whensubstring(@pspt_id,18,1)='2'then'10'
end
)
then'身份证验证错误'Else'正确'EndAs结果

D. sql语句验证虚假身份证,出现“从数据类型 nvarchar 转换为 float 时出错”,求高手解答

你先把身份证号转成varchar再并腔亮进行绝宽字符串处理,把所有的 身份证号 改圆州成 convert(varchar(50),身份证号)试试

E. sql中判断身份证号码的出生年月是否正确合法

身份证号有两种,一种是15位的(少见了),另外是18位的
用case进行判断就可以了
select *
from 表
where (case when len(身埋闹份证号字段) =18 then isdate(substring(身份证号字段,7,8)) when len(身份证大伏号字滚液携段)=15 then isdate('19'+substring(身份证号字段,7,6)) end )=1

F. 任何用SQL语句验证身份证号码是否有效

没有用SQL语句验仿消如证的,是桥陆在提交数据备启库以前来验证。
一般用脚本或者正则表达式,搜下网络有很多那

G. 如何通过SQL语言检索身份证号的尾号验证

什么意思,你是要 检验身份证 号是否合燃毕法吗?

找一下 身份证 号 的校验位的 算滚晌法。

然后编一个 sql 的函数, 实现一下身份证 号 的校验位的 算法

就可以 使用了。大段锋

H. SQL 中身份证编码与出生日期验证

根据身份证号验证出生日期:

alter table 你的表--修改表
/*添加约束 要么删掉你之前的生日约肆早含束 要么把
约束裂笑开始到结束复制到你的约束里再改*/
add constraint CK_生日 check(

--约束开始
convert(datetime,replace(stuff(stuff(right (left(char之类类型的18位的身份证号,14),8),5,0,'-'),8,0,'-'),'0',''))=生日字段
--约束结束

)

最后只要把中文替睁孙换掉就可以了

I. SQL函数验证身份证号码是否有效

SQL函数验证身份证号码是否有效
比如身份证号在C列,D2:
=IF(MID("陆镇10X98765432",MOD(SUM(MID(C2,{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17},1)*2^(18-{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17})),11)+1,1)=RIGHT(C2),"身份证正确","身份证早肢粗错误")
数饥猜组公式,按CTRL+SHIFT+回车结束,下拉。

J. SQL中检查身份证是否正确

select 字段1, 字段2
from t
where 字段=‘身份证号’;
有洞禅衡就袭渣是真的,没有就是假的啊!纳做只不过具体问题具体分析

热点内容
centos升级python27 发布:2024-11-02 02:00:57 浏览:673
ue4未找到编译器 发布:2024-11-02 01:46:08 浏览:155
python中的withopen 发布:2024-11-02 01:46:07 浏览:976
编程名人 发布:2024-11-02 01:42:18 浏览:867
服务器电脑配置表 发布:2024-11-02 01:41:29 浏览:370
linux使用串口 发布:2024-11-02 01:37:11 浏览:702
二维码扫的密码从哪里开始 发布:2024-11-02 01:24:57 浏览:473
如何将手表改成开放式安卓系统 发布:2024-11-02 01:09:00 浏览:739
6s还能用吗能和什么安卓机比 发布:2024-11-02 01:08:09 浏览:765
SQL扩位 发布:2024-11-02 00:55:35 浏览:447