SQL简单验证身份证号码位数、出生日期、性别(转)

转载 2007年09月19日 17:36:00
 

主要验证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)))

 

通过身份证分析出生年月日、性别、年龄的SQL语句

update [表名] set [性别]=(case when (left(right([身份证],2),1) % 2 = 0) then '女' else '男' end ) where len([...

SQL Server 验证身份证号码准确性

/******************************************************************* 函数名称:IsvalidIDCard() 参数:@IDCa...

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

-- ============================================= -- 作 者: 黄江华 -- 日 期: 2008-05-27 -- 描 述: 身份证号码是否有效...
  • wsimei
  • wsimei
  • 2011年10月15日 16:12
  • 1815

用SQL写的18位身份证校验代码

身份证校验码的计算方法  1、将前面的身份证号码17位数分别乘以不同的系数。第i位对应的数为[2^(18-i)]mod11。从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7...

SQLSERVER校验身份证号 合法性

最近在做一个项目时需要在存储过程中判断身份证号的参数的合法性,因此参照网上对应的C++代码改造成SQL SERVER的函数 C++代码的链接:http://blog.chinaunix.net/ui...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

SQL验证身份证

CREATEFUNCTION[fn_ValidateIDC](@idcvarchar(18))RETURNSBITASBEGINIFLEN(@idc)15ANDLEN(@idc)18--身份证号只有1...

Oracle 中时间的计算

Oracle中表示时间有DATE和TIMESTAMP,DATE可以存储年,月,日,小时,分钟,秒. TIMESTAMP是DATE的扩展,可以存储年,月,日,小时,分钟,秒,同时还可以存储秒的小数部分...
  • kkdelta
  • kkdelta
  • 2010年07月16日 17:45
  • 4394

8. PHP接入微信的三种支付:APP支付、公众号支付、扫码支付

当前微信支付已经占了半壁江山。所以国产应用应该必不可少。为了良好的进行支付整合。本sdk将其调用方式进行了统一。便于大家使用。...
  • hel12he
  • hel12he
  • 2016年08月10日 20:44
  • 3526
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL简单验证身份证号码位数、出生日期、性别(转)
举报原因:
原因补充:

(最多只允许输入30个字)