sql验证身份证
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 字段=‘身份证号’;
有洞禅衡就袭渣是真的,没有就是假的啊!纳做只不过具体问题具体分析