身份證判斷出生日期和性別

select ceil(months_between(sysdate,birthday)/12) as age,
decode(mod(sex,2),0,’女’,1,’男’,'其餘’)as sex
from
(select to_date(decode(length(a),15,’19′||SUBSTR(a,7,6),18,SUBSTR(a,7,8)),’yyyy-mm-dd’)as birthday,
case when length(a)=15
then SUBSTR(a,length(a))
when length(a)=18
then SUBSTR(a,length(a)-1,1)
end as sex
from
(select ’441211198306241324′ as a from dual
union all
select ’111222198010103334′ from dual
union all
select ’111222651010553′ from dual))
–15位身份證號碼:第七、8位爲出生年份(兩位數),第九、10位爲出生月份,第十一、12位爲出生日,第15位爲性別,奇數爲男,偶數爲女
–18位身份證號碼:第7-10位爲出生年份(四位數),第十一、12位爲出生月份,第1三、14位爲出生日,第17位爲性別,奇數爲男,偶數爲女spa

相關文章
相關標籤/搜索