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 欄位=『身份證號』;
有洞禪衡就襲渣是真的,沒有就是假的啊!納做只不過具體問題具體分析