Hive日期格式转换方法总结


Posted in 数据库 onJune 25, 2022

背景

日期计算平时在业务取数时经常涉及到,但是数据库中经常存放着不同的日期格式,有的存放是时间戳、有的是字符串等,这时需要对其进行转换才能提取到准确的数据,这里介绍的均是hive里面的函数功能,以下内容均是业务的数据需求经常使用的部分

时间戳

unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒,一般为10位的整数

时间戳

字符串日期:'2021-10-21 19:25:50','2021-10-21 20:25:50.0','2021-10-21 20:25'

日期格式转换

时间戳--->正常的日期格式

  • 获取当前时间戳
select unix_timestamp()
  • 把时间戳转为正常的日期
select from_unixtime(unix_timestamp(),'yyyy-MM-dd hh:mm:ss') as dt
  • 业务中有时存放的是包含毫秒的整数,需要先转换为秒
select from_unixtime(cast(create_time/1000 as bigint),'yyyyMMdd') as dt

字符串日期假如数据库存放的是格式为:"yyyy-MM-dd hh:mm:ss"

  • 截取日期部分
select substr('2021-10-22 17:34:56',1,10)
2021-10-22
  • 字符串强制转换,获取日期
select to_date('2021-10-22 17:34:56')
2021-10-22
  • 也可以通过date_format实现
select date_format('2021-10-22 17:34:56','yyyy-MM-dd')
2021-10-22

系统当前日期

  • 当前日期
select current_date();
2021-10-22
  • 字符串日期与系统当前日期比较,这个在业务中经常有用到
select substr('2021-10-22 17:34:56',1,10)>current_date()
false

前一日/昨日

select date_sub(current_date(),1);
2021-10-21

前一日12点/昨日12点在业务中与截取的字符串日期进行比较时用

select concat(date_format(date_sub(current_date(),1),'yyyy-MM-dd'),' ','12');
2021-10-21 12

最近一个月/30天

select date_sub(current_date(),30);
2021-09-22

当月第一天业务中经常用在滚动计算当月每日的业绩数据

select date_format(to_date(trunc(current_date(),'MM')),"yyyy-MM-dd");
2021-10-01

日期格式转换 yyyyMMdd--->yyyy-MM-dd

select from_unixtime(unix_timestamp('20211022','yyyyMMdd'),"yyyy-MM-dd");
2021-10-22

两个日期相隔天数

select datediff('2021-10-22', '2021-10-01');
21

以上就是Hive日期格式转换方法总结的详细内容,更多关于Hive日期格式转换的资料请关注三水点靠木其它相关文章!


Tags in this post...

数据库 相关文章推荐
Mysql MVCC机制原理详解
Apr 20 MySQL
详解Redis复制原理
Jun 04 Redis
Mysql 如何实现多张无关联表查询数据并分页
Jun 05 MySQL
oracle索引总结
Sep 25 Oracle
mysql 获取时间方式
Mar 20 MySQL
sentinel支持的redis高可用集群配置详解
Apr 01 Redis
一文搞懂Redis中String数据类型
Apr 03 Redis
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
Apr 18 MySQL
SQL Server中锁的用法
May 20 SQL Server
Redis特殊数据类型Geospatial地理空间
Jun 01 Redis
Redis实现分布式锁的五种方法详解
Jun 14 Redis
MySQL示例讲解数据库约束以及表的设计
Jun 16 MySQL
PostgreSQL怎么创建分区表详解
Jun 25 #PostgreSQL
Mysql中的触发器定义及语法介绍
Jun 25 #MySQL
Hive常用日期格式转换语法
Jun 25 #数据库
MySQL数据库配置信息查看与修改方法详解
Jun 25 #MySQL
SQL语句中EXISTS的详细用法大全
Jun 25 #MySQL
Oracle数据库事务的开启与结束详解
Jun 25 #Oracle
MySQL约束(创建表时的各种条件说明)
Jun 21 #MySQL
You might like
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
详解js异步文件加载器
2016/01/24 PHP
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
2015/10/09 Javascript
AngularJS中的Directive实现延迟加载
2016/01/25 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
javascript实现数据双向绑定的三种方式小结
2017/03/09 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
Python中实现常量(Const)功能
2015/01/28 Python
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
浅谈python import引入不同路径下的模块
2017/07/11 Python
python使用PyQt5的简单方法
2019/02/27 Python
python进程和线程用法知识点总结
2019/05/28 Python
详解Python图像处理库Pillow常用使用方法
2019/09/02 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
2019/12/22 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
Gina Bacconi官网:吉娜贝康尼连衣裙和礼服
2018/04/24 全球购物
地球鞋加拿大官网:Earth Shoes Canada
2020/11/17 全球购物
讲解员培训方案
2014/05/04 职场文书
通知函格式范文
2015/04/27 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
无房证明样本
2015/06/17 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
物业管理交接协议书
2016/03/24 职场文书
MySQL 数据丢失排查案例
2021/05/08 MySQL