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知识点整理
Apr 05 MySQL
基于Redis实现分布式锁的方法(lua脚本版)
May 12 Redis
使用redis生成唯一编号及原理示例详解
Sep 15 Redis
MySQL8.0升级的踩坑历险记
Nov 01 MySQL
面试分析分布式架构Redis热点key大Value解决方案
Mar 13 Redis
MySQL学习之基础操作总结
Mar 19 MySQL
关于MySQL临时表为什么可以重名的问题
Mar 22 MySQL
浅谈MySQL中的六种日志
Mar 23 MySQL
mysql数据库隔离级别详解
Jun 16 MySQL
MySQL自定义函数及触发器
Aug 05 MySQL
MySQL使用IF语句及用case语句对条件并结果进行判断 
Sep 23 MySQL
详解MySQL的内连接和外连接
May 08 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实现的随机广告显示代码
2007/06/14 PHP
php中cookie的作用域
2008/03/27 PHP
优化PHP代码技巧的小结
2013/06/02 PHP
php阳历转农历优化版
2016/08/08 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
2010/02/15 Javascript
jquery select(列表)的操作(取值/赋值)
2011/03/16 Javascript
JavaScript包装对象使用介绍
2013/08/29 Javascript
iframe的父子窗口之间的对象相互调用基本用法
2013/09/03 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
2014/10/17 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
Vue.js用法详解
2017/11/13 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
基于vue.js组件实现分页效果
2018/12/29 Javascript
Python实现二叉搜索树
2016/02/03 Python
Python实现堆排序的方法详解
2016/05/03 Python
Python中read()、readline()和readlines()三者间的区别和用法
2017/07/30 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
Python倒排索引之查找包含某主题或单词的文件
2019/11/13 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
美国羊皮公司:Overland
2018/01/15 全球购物
考博专家推荐信模板
2013/12/02 职场文书
供用电专业求职信
2014/07/07 职场文书
优秀党员事迹材料
2014/12/18 职场文书
小学家长通知书评语
2014/12/31 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书
2015大学迎新标语
2015/07/16 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书
python 算法题——快乐数的多种解法
2021/05/27 Python
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫