當前位置:首頁 » 編程語言 » 根據身份證號碼提取出生日期sql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

根據身份證號碼提取出生日期sql

發布時間: 2023-03-16 09:49:49

sql中如何從身份證號中查看生日是當天日期的人

select * from table t where substr(t.ID,7,8) = to_char(sysdate,'yyyymmdd') table 是你的液御表名,ID是你的身份證號碼,(現在的身份證亂啟都是18位了吧,從第7個字元開始截取,截取8個字元,如果身份證不是18位,要更改一下截取開始的位置),sysdate是系統當前時間,'yyyymmdd'是日期格式定鬧陪岩義。

❷ sql 利用身份證換算出生日期

要isdate(xx)=1即可以轉化為日期類型才行

select sfzh,substring(sfzh,7,4)+'-'+ substring(sfzh,11,2)+'-'+substring(sfzh,13,2) as xx into #T from A

select * from #T where isdate(xx)=1

update A set csrq=convert(datetime,xx) from A,#T
where A.sfzh=#T.sfzh and isdate(xx)=1

❸ 各位兄弟都來,如何在sql里利用身份證查詢出生日期

select 序號,姓名,身份證號,
case LEN(身份證號)
when 15 then convert(date, SUBSTRING(身份證號, 7, 6), 12) /*15位身份證號: 7-12位為yymmdd */
when 18 then convert(date, SUBSTRING(身份證號, 7, 8), 112) /*18位身份證號: 7-14位為yyyymmdd */
else NULL
end as 出生日期,
case LEN(身份證號)
/*身份證號出生日期後3位, 如果為奇數則性別為男, 55歲退休; 如果為偶數則為女, 50歲退休*/
when 15 then dateadd(year, case convert(int, SUBSTRING(身份證號,15,1))%2 when 1 then 55 else 50 end, convert(date, SUBSTRING(身份證號, 7, 6), 12) )
when 18 then dateadd(year, case convert(int, SUBSTRING(身份證號,17,1))%2 when 1 then 55 else 50 end, convert(date, SUBSTRING(身份證號, 7, 8), 112) )
else NULL
end as 退休日期
from 養老表

❹ SQL由身份證號計算出生日期和年齡

select datediff(day,convert(datetime,SUBSTRING (ID, 7, 4) + '-' + SUBSTRING (ID, 11, 2) + '-' + SUBSTRING (ID, 13, 2)) ,getdate())/360 from 員工信息表

❺ sqlserver如何將身份證號碼的出生日期提取出來轉為日期類型數據

(1)截取第七、八位數沒有錯
(2)錯就錯在as
datetime錯誤。
截取獲得的兩位數字不可能轉成時間格式。只能轉成int、string或者varchar格式
(3)改正方法:把as
datetime改成as
int
或者改成as
varchar
望採納!

❻ sql從身份證中取出出生日期

以oracle為例:假設你的tb_csm_indivial表裡面CERTIFICATE_CODE欄位存著身份證號:
select
to_date(substr(CERTIFICATE_CODE,7,8),'%yyyy%mm%dd')
from
tb_csm_indivial
where
CERTIFICATE_CODE='210102197908223722'
;這樣就查出來了這個身份證號的出生日期;
下面的腳本就是計算當前日期減去出生日期求出來的生日
select
EXTRACT(year
FROM
to_date('2018-11-22','yyyy-mm-dd'))
-
EXTRACT(year
FROM
to_date(substr(CERTIFICATE_CODE,7,8),'yyyy-mm-dd'))
years
from
tb_csm_indivial
where
CERTIFICATE_CODE='210102197908223722';
至於剩下的年齡區間樓主自己應該知道怎麼求了把

❼ sql 從身份證中自動獲取出生日期,顯示格式為XXXX-XX-XX

以oracle為例,通過substr()方法截取
年月日
,即可源檔。
代碼如下:
declare
cardid
varchar(20);
birth
varchar(20);
begin
/*給cardid賦值一個18位身份證做好號碼*/純裂鉛
birth
:=
substr(cardid,7,4)
||
'-'
||
substr(cardid,11,2)
||
'-'
||
substr(cardid,13,2);
dbms_output.put_line(birth);
end;

❽ SQL 利用身份證提取生日月

when substring(HY_JBDA.證件號碼,11,2) ='01' then '1月'

❾ 出生日期怎麼從身份證提取出來

從身份證號碼中態睜提取出生帆友歲日期的方法;

1、打開EXCEL表格,並以各種單位輸入ID號。

❿ sql中,根據身份證號碼截取出了出生日期,怎麼獲取當前年齡,精確到月、日

具體代碼就不寫了

思路如下

  1. 身份證18位 從多少位是年月日來著?大概是第7--15是年月日 substring()方法

  2. 獲取當前年與日

  3. 兩個日期轉化為毫秒相減,相減後的毫秒轉化為天數
    給個小例子

  4. publicstaticvoidmain(String[]args){
    CalendarnowDate=Calendar.getInstance(),oldDate=Calendar.getInstance();
    nowDate.setTime(newDate());//設置為當前系統時間
    oldDate.set(1990,5,19);//設置為1990年(6)月29日
    longtimeNow=nowDate.getTimeInMillis();
    longtimeOld=oldDate.getTimeInMillis();
    long相隔天數=(timeNow-timeOld)/(1000*60*60*24);//化為天
    System.out.println("相隔"+相隔天數+"天");