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...

数据库 相关文章推荐
PostgreSQL存储过程实用脚本(二):创建函数入门
Apr 05 PostgreSQL
MySQL 分页查询的优化技巧
May 12 MySQL
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
May 25 MySQL
浅谈redis整数集为什么不能降级
Jul 25 Redis
MySQL令人大跌眼镜的隐式转换
Aug 23 MySQL
Redis入门教程详解
Aug 30 Redis
Redis 常见使用场景
Aug 30 Redis
浅谈MySQL函数
Oct 05 MySQL
MySQL中的引号和反引号的区别与用法详解
Oct 24 MySQL
Mysql 文件配置解析介绍
May 06 MySQL
Redis基本数据类型List常用操作命令
Jun 01 Redis
一次SQL查询优化原理分析(900W+数据从17s到300ms)
Jun 10 SQL Server
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
使用迭代器 遍历文件信息的详解
2013/06/08 PHP
php中autoload的用法总结
2013/11/08 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
2014/07/22 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
PHP实现一个按钮点击上传多个图片操作示例
2020/01/23 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
利用js对象弹出一个层
2008/03/26 Javascript
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
JS不间断向上滚动效果代码
2013/12/25 Javascript
extjs每个组件要设置唯一的ID否则会出错
2014/06/15 Javascript
一个可以增加和删除行的table并可编辑表格中内容
2014/06/16 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
Vue三层嵌套路由的示例代码
2018/05/05 Javascript
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
微信小程序如何调用新闻接口实现列表循环
2019/07/02 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
VUE-ElementUI 自定义Loading图操作
2020/11/11 Javascript
微信小程序实现简单购物车功能
2020/12/30 Javascript
python 接口返回的json字符串实例
2018/03/27 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
matplotlib.pyplot画图并导出保存的实例
2019/12/07 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
《音乐之都维也纳》教学反思
2014/04/16 职场文书
公司周年庆典策划方案
2014/05/17 职场文书
学用政策心得体会
2014/09/10 职场文书
退学证明范本3篇
2014/10/29 职场文书
2016年第104个国际护士节活动总结
2016/04/06 职场文书
详解Python常用的魔法方法
2021/06/03 Python
python实现简单石头剪刀布游戏
2021/10/24 Python
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技