zoukankan      html  css  js  c++  java
  • 对身份证日期以及身份证对应的性别字段进行错误检查

    SQLServer State:
    1、对身份证日期(年月日)错误进行检查

    select  cbfbm,cyzjhm,cyxm ,Substring(cyzjhm,7,4)+'-'+Substring(cyzjhm,11,2)+'-'+Substring(cyzjhm,13,2)
    from cbf_jtcy
    where (len(cyzjhm)<>15 and len(cyzjhm)<>18)
    or (Substring(cyzjhm ,7,2)<19)
    or (Substring(cyzjhm ,7,2)>20)
    or (Substring(cyzjhm ,11,2)>12)
    or (Substring(cyzjhm ,11,2) in (01,03,05,07,08,10,12) and Substring(cyzjhm ,13,2)>31)
    or (Substring(cyzjhm ,11,2) in (04,06,09,11) and Substring(cyzjhm ,13,2)>30)
    or ((Substring(cyzjhm,7,4) % 4=0 and Substring(cyzjhm,7,4) % 100<>0 or Substring(cyzjhm,7,4) % 400=0) and Substring(cyzjhm ,11,2)=2 and Substring(cyzjhm ,13,2)>29)
    or ((Substring(cyzjhm,7,4) % 4<>0 and Substring(cyzjhm,7,4) % 100=0 or Substring(cyzjhm,7,4) % 400<>0) and Substring(cyzjhm ,11,2)=2 and Substring(cyzjhm ,13,2)>28)


    2、身份证对应性别错误进行检查

    select *
    FROM CBF_JTCY
    where (((len(CYZJHM)=15) and (Substring(CYZJHM,15,1) in (1,3,5,7,9)) and CYXB<>'1')
    or ((len(CYZJHM)=15) and (Substring(CYZJHM,15,1) in (2,4,6,8,0)) and CYXB<>'2'))
    or (((len(CYZJHM)=18) and (Substring(CYZJHM,17,1) in (1,3,5,7,9)) and CYXB<>'1')
    or ((len(CYZJHM)=18) and (Substring(CYZJHM,17,1) in (2,4,6,8,0)) and CYXB<>'2'))

     注:如果在Access数据库使用该SQL语句,只需将Substring函数改成mid函数,其余不变

    作者:ldy

    出处:https://www.cnblogs.com/ParanoiaApe/

    你所做的一切努力并不会立即给你想要的一切,但可以让你逐渐成为你想成为的那一种人!

    本文版权归作者所有,欢迎转载,但请保留该声明。

  • 相关阅读:
    AT+CNMI的使用
    oracle 触发器及游标的使用
    索引优缺点
    SQL Server里的主键、唯一性约束、聚集索引
    C++中使用内存映射文件处理大文件
    oracle 学习笔记
    香干炒肉丝
    如何将数据导入到 SQL Server Compact Edition 数据库中
    解决ORACLE密码遗忘
    Office 2003 主 Interop 程序集的安装和使用
  • 原文地址:https://www.cnblogs.com/ParanoiaApe/p/7885088.html
Copyright © 2011-2022 走看看