1. 首页 > 科技

写一个oracle 的自定义函数 : 根据身份证返回出生日期,急!

写一个oracle 的自定义函数 : 根据身份证返回出生日期,急!

写一个oracle 的自定义函数 : 根据出生日期算年龄 急急急!

-- 传入date

create or replace function uf_get_age(v_bir date) return number is

begin

return floor(months_between(sysdate, v_bir)/ 12);

end;

-- 传入varchar

create or replace function uf_get_age(v_bir varchar2) return number is

begin

return to_char(sysdate, 'yyyy') - substr(v_bir, 1, 4)

- case when to_char(sysdate, 'mmdd') < substr(v_bir, 5, 4) then 1 else 0 end;

end;

oracle根据身份证号字段信息更新出生日期

身份证号分为15位和18位,处理方式略有不同,但也可以用一句sql语句来更新。

如test表中数据如下:

更新birthday字段的语句如下:

update test set birthday=case when length(sfz)=18 then substr(sfz,7,8) when  length(sfz)=15 then '19'||substr(sfz,7,6) end;

commit;更新后结果:

oracle根据身份证字段信息,更新出生日期字段

身份证号码的长度分为15位和18位,改法不同,但在oracle中可用一句话来更新。

1、如shenfenzheng表中数据如下:

2、现要更新hiredate字段,使之为身份证号码信息中的出生日期。可用如下语句:

update shenfenzheng set hiredate=case when length(sfz_id)=18 then substr(sfz_id,7,8) else '19'||substr(sfz_id,7,6) end;

commit;3、更新后结果: