当前位置:首页 » 编程语言 » 根据身份证号码提取出生日期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("相隔"+相隔天数+"天");