當前位置:首頁 » 編程語言 » sql驗證身份證

sql驗證身份證

發布時間: 2023-04-13 23:13:28

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

熱點內容
java微信公眾號開發 發布:2024-11-02 04:35:29 瀏覽:586
php對象轉為數組 發布:2024-11-02 04:33:45 瀏覽:719
阿里雲啟動伺服器 發布:2024-11-02 04:31:51 瀏覽:110
數控編譯錯誤802怎麼解決 發布:2024-11-02 04:31:42 瀏覽:320
linux如何安裝驅動 發布:2024-11-02 04:30:18 瀏覽:491
雲伺服器項目實施方案 發布:2024-11-02 04:26:00 瀏覽:246
寫入存儲 發布:2024-11-02 04:20:21 瀏覽:31
JavaString替換 發布:2024-11-02 04:14:29 瀏覽:560
百度查詢腳本 發布:2024-11-02 04:14:22 瀏覽:99
陰陽師ios如何登錄安卓 發布:2024-11-02 04:03:03 瀏覽:708