IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hive提取身份证号中年龄和性别 -> 正文阅读

[大数据]Hive提取身份证号中年龄和性别

身份证的组成和结构:

18位的居民身份证号:
1.号码的结构
公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。

排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
2.地址码
表示编码对象常住户口所在县(市、旗、区)的行政区划代码。
3.出生日期码
表示编码对象出生的年、月、日。
4.顺序码
表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
5.校验码
根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。

15位的居民身份证号:

1-2位省、自治区、直辖市代码;

3-4位地级市、盟、自治州代码;

5-6位县、县级市、区代码;

7-12位出生年月日,比如670401代表1967年4月1日,与18位的第一个区别;

13-15位为顺序号,其中15位男为奇数,女为偶数;

与18位身份证号的第二个区别:没有最后一位的验证码。


举例:

130503 670401 001的含义; 13为河北,05为邢台,03为桥西区,出生日期为1967年4月1日,顺序号为001。
?

SQL如下:

select 
	id_no,   
	id_no,
	case 
		when length(id_no) = 18 then floor(datediff( from_unixtime(unix_timestamp(),'yyyy-MM-dd'),concat_ws('-',substr(id_no,7,4),substr(id_no,11,2),substr(id_no,13,2)))/365)
		when length(id_no) = 15 then floor(datediff( from_unixtime(unix_timestamp(),'yyyy-MM-dd'),concat('19',substr(id_no,7,2),'-', substr(id_no,9,2),'-', substr(id_no,11,2)))/365 ) 
	else null end as age,
	case 
		when length(id_no) = 18 then  case when substr(id_no,17,1)%2 = 0 then 'F' when substr(id_no,17,1)%2 <> 0 then 'M' else null end
		when length(id_no) = 15 then  case when substr(id_no,15)%2 = 0 then 'F' when substr(id_no,15)%2 <> 0 then 'M' else null end 
	else null end as sex
from test_table

year(from_unixtime(unix_timestamp(),"yyyy-MM-dd")) - year(to_date(from_unixtime(unix_timestamp(substr(usr_id_card,7,8),'yyyyMMdd'),'yyyy-MM-dd')))

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:16:50  更:2021-08-04 11:18:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:42:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码