A. sql中,根據身份證號碼截取出了出生日期,怎麼獲取當前年齡,精確到月、日
具體代碼就不寫了
思路如下
身份證18位 從多少位是年月日來著?大概是第7--15是年月日 substring()方法
獲取當前年與日
兩個日期轉化為毫秒相減,相減後的毫秒轉化為天數
給個小例子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("相隔"+相隔天數+"天");
B. 用sql語句怎麼提取身份證號碼中的生日信息
sellect * from 表 where 身份證號 >='223154198802150000' and 身份證號<='224999154198802159999'
C. 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;
D. 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';
至於剩下的年齡區間樓主自己應該知道怎麼求了把
E. sqlserver如何將身份證號碼的出生日期提取出來轉為日期類型數據
(1)截取第七、八位數沒有錯
(2)錯就錯在as
datetime錯誤。
截取獲得的兩位數字不可能轉成時間格式。只能轉成int、string或者varchar格式
(3)改正方法:把as
datetime改成as
int
或者改成as
varchar
望採納!
F. 如何在資料庫中利用sql從18位身份證號中截取出生日期,身份證號在reader表中
sqlserver:
select substring(身份證號,7,8) from reader
oracle:
select substr(身份證號,7,8) from reader
G. sql提取身份證時間到欄位
這個問題先要了解身份證的組成,看我寫的文章:
http://blog.csdn.net/feixianxxx/archive/2009/08/02/4402329.aspx
----------------------------------------------------------------------------------------------------------
insert 表1(出生日期)
select substring(身份證號碼,7,8)
from 身份證表 ;
H. 身份證號碼如何提取出生日期
操作方法如下:
1、打開EXCEL表格,並以各種單位輸入ID號。
I. sql 身份證號碼提取出生日期
工具/材料:Management Studio。
1、首先在桌面上,點擊「Management Studio」圖標。