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

数据库 相关文章推荐
详解GaussDB for MySQL性能优化
May 18 MySQL
MySQL系列之八 MySQL服务器变量
Jul 02 MySQL
MySQL系列之十二 备份与恢复
Jul 02 MySQL
在项目中使用redis做缓存的一些思路
Sep 14 Redis
使用redis生成唯一编号及原理示例详解
Sep 15 Redis
mysql中int(3)和int(10)的数值范围是否相同
Oct 16 MySQL
mysql主从复制的实现步骤
Oct 24 MySQL
mysql事务隔离级别详情
Oct 24 MySQL
一文了解MySQL二级索引的查询过程
Feb 24 MySQL
MySQL之MyISAM存储引擎的非聚簇索引详解
Mar 03 MySQL
分享几个简单MySQL优化小妙招
Mar 31 MySQL
mysql序号rownum行号实现方式
Dec 24 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
提问的智慧(2)
2006/10/09 PHP
PHP中的日期及时间
2006/11/23 PHP
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
2014/05/12 PHP
php实现数组按指定KEY排序的方法
2015/03/30 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
2017/04/25 PHP
javascript 鼠标滚轮事件
2009/04/09 Javascript
在Windows上安装Node.js模块的方法
2011/09/25 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
2014/06/24 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
nodejs基础知识
2017/02/03 NodeJs
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
2020/06/11 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
pycharm 使用心得(七)一些实用功能介绍
2014/06/06 Python
python记录程序运行时间的三种方法
2017/07/14 Python
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
2018/04/28 Python
Python格式化字符串f-string概览(小结)
2019/06/18 Python
python用线性回归预测股票价格的实现代码
2019/09/04 Python
解决python replace函数替换无效问题
2020/01/18 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
初中英语教学反思
2014/01/25 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
python实现进度条的多种实现
2021/04/29 Python
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
Nginx速查手册及常见问题
2022/04/07 Servers
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android