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”图标。