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([...
  • gulijiang2008
  • gulijiang2008
  • 2011年09月28日 15:26
  • 5792

Oracle根据身份证号码判断性别

Oracle内根据身份证号码判断性别: select  decode(mod (to_number( substr(t.idcard ,17, 1)),2 ),0, '女','男' ) as se...
  • u010758605
  • u010758605
  • 2015年12月07日 16:02
  • 3135

MySql 根据身份证号判断年龄所属省份与性别男女

1.年龄:  (%当前年份% - SUBSTRING(`card_id`,7,4)) AS 年龄, 2.所属省份: CASE LEFT(`card_id`,2) WHEN 11 THEN '北京' W...
  • sinat_31053941
  • sinat_31053941
  • 2017年04月10日 10:28
  • 2537

SQLSERVER校验身份证号 合法性

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

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

/******************************************************************* 函数名称:IsvalidIDCard() 参数:@IDCa...
  • a497785609
  • a497785609
  • 2017年05月16日 11:16
  • 1752

SQL Server 验证身份证合法性函数(使用VBScript.RegExp)

-- 建立正则表达式测试函数 CREATE FUNCTION dbo.RegExpTest ( @source VARCHAR(5000), --需要匹配的源字符串...
  • wzy0623
  • wzy0623
  • 2016年12月27日 15:09
  • 483

sql中取身份证字段自动计算年龄

select  FLOOR(DATEDIFF(DY, substring(身份证字段,7,4), GETDATE()) / 365.25)  age  from [表名]...
  • yyxhgy
  • yyxhgy
  • 2015年05月25日 14:44
  • 4630

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

 主要验证SQL数据库中已输入的15位 及18位 身份证号码的位数、出生年月日是否正确,可以过滤出大部分的输入错误。 or (len(身份证号)=18 and (Substring(身份证号,7,2)...
  • lovelacy
  • lovelacy
  • 2007年09月19日 17:36
  • 6489

sql存储过程+游标 根据身份证号码获得生日

set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo   -- =============================================-- Aut...
  • maji9370
  • maji9370
  • 2009年06月24日 09:32
  • 1375

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

主要验证SQL数据库中已输入的15位 及18位 身份证号码的位数、出生年月日是否正确,可以过滤出大部分的输入错误。 or (len(身份证号)=18 and (Substring(身份证号,7,2)2...
  • babu2
  • babu2
  • 2007年05月16日 09:31
  • 1449
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL简单验证身份证号码位数、出生日期、性别(转)
举报原因:
原因补充:

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