程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL簡單驗證SFZ號碼位數、出生日期、性別

SQL簡單驗證SFZ號碼位數、出生日期、性別

編輯:關於SqlServer

主要驗證SQL數據庫中已輸入的15位 及18位 SFZ號碼的位數、出生年月日是否正確,
可以過濾出大部分的輸入錯誤。

 

or (len(SFZ號)=18 and (Substring(SFZ號,7,2)<'19' or Substring(SFZ號,7,2)>'20'
        or (Substring(SFZ號,11,2)>12)
or (Substring(SFZ號,11,2) in (01,03,05,07,08,10,12) and Substring(SFZ號,13,2)>31)
or (Substring(SFZ號,11,2) in (04,06,09,11) and Substring(SFZ號,13,2)>30)
or (Substring(SFZ號,11,2)=02 and Substring(SFZ號,13,2)>29)))

---------------------- 下面是針對 15位 及18位 SFZ號碼性別的驗證語句 ------------------

-- Access 不支持 Substring 查詢,可以替換為 mid 查詢。

select 序號,姓名,SFZ號,性別
from 身份表
where (((len(SFZ號)=15) and (Substring(SFZ號,15,1) in (1,3,5,7,9)) and 性別<>'男')
or ((len(SFZ號)=15) and (Substring(SFZ號,15,1) in (2,4,6,8,0)) and 性別<>'女'))

or (((len(SFZ號)=18) and (Substring(SFZ號,17,1) in (1,3,5,7,9)) and 性別<>'男')
or ((len(SFZ號)=18) and (Substring(SFZ號,17,1) in (2,4,6,8,0)) and 性別<>'女'))

注:轉載請注明出處

---------------------- 下面是針對 15位 及18位 SFZ號碼位數與出生年月日的驗證 ------------------

-- Access 不支持 Substring 查詢,可以替換為 mid 查詢。

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

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved