Oracle根据身份证号码判断性别,年龄
来源:互联网 发布:ubuntu 17配置lamp 编辑:程序博客网 时间:2024/05/01 09:54
一、Oracle根据身份证判断性别:
女生身份证:
431382198103246985
男生身份证:
150921197208173492
SQL语句如下:
select decode(mod (to_number(substr('110228197802199547' ,17, 1)),2 ),0, '女','男' ) as sex from dual ;select decode(mod (to_number(substr('530323197503252610' ,17, 1)),2 ),0, '女','男' ) as sex from dual ;select decode(mod (to_number(substr('110228197802199547' ,17, 1)),2 ),0, '2','1' ) as sex from dual ;select decode(mod (to_number(substr('530323197503252610' ,17, 1)),2 ),0, '2','1' ) as sex from dual ;
二、Oracle根据身份证判断年龄:
方法一
select (to_char(sysdate, 'yyyy') - substr('430426199303014475', 7, 4)) age from dual;
方法二
select trunc(to_number(to_char(sysdate,'yyyymmdd'))/10000 - to_number(to_char(to_date('1982-8-28','yyyy-mm-dd'),'yyyymmdd'))/10000) from dual
方法三
select trunc((to_char(sysdate,'yyyyMMdd')-to_char(to_date(substr('430426199303014475',7,8),'yyyy-MM-dd'),'yyyyMMdd'))/10000) from dual;
三、根据15、18位身份证获取年龄性别
select case when length(idcard) = 18 then ceil((to_char(sysdate, 'yyyyMMdd') - to_char(to_date(substr(idcard, 7, 8), 'yyyy-MM-dd'), 'yyyyMMdd')) / 10000) when length(idcard) = 15 then ceil((to_char(sysdate, 'yyyyMMdd') - to_char(to_date('19' || substr(idcard, 7, 6), 'yyyy-MM-dd'), 'yyyyMMdd')) / 10000) end as age, case when length(idcard) = 18 then decode(mod(to_number(substr(idcard, 17, 1)), 2), 0,'2','1') when length(idcard) = 15 then decode(mod(to_number(idcard), 2), 0, '2', '1') end as sex from usr where guid='230E20A6FFA1B41CE050AE0AC684959F'
上面获取的格式是"1990" 只包含了年没有包含出生日期,如果要包含出生日期"1990-01-12",就得使用如下格式:
select case when length(idcard) = 18 then ceil((to_char(sysdate, 'yyyyMMdd') - to_char(to_date(substr(idcard, 7, 8), 'yyyy-MM-dd'), 'yyyyMMdd')) / 10000) when length(idcard) = 15 then ceil((to_char(sysdate, 'yyyyMMdd') - to_char(to_date('19' || substr(idcard, 7, 6), 'yyyy-MM-dd'), 'yyyyMMdd')) / 10000) end as age, case when length(idcard) = 18 then decode(mod(to_number(substr(idcard, 17, 1)), 2), 0,'2','1') when length(idcard) = 15 then decode(mod(to_number(idcard), 2), 0, '2', '1') end as sex, case when length(idcard)=18 then to_char(to_date(substr(idcard, 7, 8), 'yyyy-MM-dd'),'yyyy-MM-dd') when length(idcard)= 15 then to_char(to_date('19'||substr(idcard, 7,6), 'yyyy-MM-dd'),'yyyy-MM-dd') end as birthday,id as mobile,name,guid from usr where guid='174BD3D5879C3BF0E050007F010077DC'
阅读全文
0 0
- Oracle根据身份证号码判断性别,年龄
- Oracle根据身份证号码判断性别
- IOS 根据身份证号码获取 年龄 生日 性别
- 根据二代身份证号码判断年龄
- 根据身份证号码判断性别 java
- oracle根据身份证号码计算年龄
- 单元格里根据身份证号码计算年龄和性别
- 根据身份证号码计算出生日期、年龄、性别(18位)
- 在EXCEL中根据身份证号码计算年龄、出生年月、性别
- 根据身份证号码识别性别年龄生日的JS代码:
- jquery根据身份证号码计算出生日期、年龄、性别代码
- js实现根据身份证号码识别 性别 年龄 生日
- 根据身份证号码获取年龄
- Oracle:根据身份证号码查询年龄最大的人
- TensorFlow练习16: 根据大脸判断性别和年龄
- MySql 根据身份证号判断年龄所属省份与性别男女
- TensorFlow练习: 根据大脸判断性别和年龄
- 根据内地省份证判断性别,年龄和出生
- 浅谈position(定位)
- Python3 函数式编程
- js的$("li").each(function()
- 多态
- HTML中      等6种空白空格的区别
- Oracle根据身份证号码判断性别,年龄
- 浅谈数据挖掘与机器学习
- 自动化程序
- 二叉树的后序非递归遍历(巧妙思想...)
- 通天源码论坛网狐游戏平台游戏编译常见错误
- Composer PHP依赖管理的新时代
- hadoop Configuration
- HTML学习笔记(三)——HTML样式
- 树形DP HDU 5416