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

数据库 相关文章推荐
MySQL5.7并行复制原理及实现
Jun 03 MySQL
Prometheus 监控MySQL使用grafana展示
Aug 30 MySQL
Redis集群新增、删除节点以及动态增加内存的方法
Sep 04 Redis
MySQL定时备份数据库(全库备份)的实现
Sep 25 MySQL
MySQL图形化管理工具Navicat安装步骤
Dec 04 MySQL
Redis超详细讲解高可用主从复制基础与哨兵模式方案
Apr 07 Redis
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
Apr 12 PostgreSQL
以MySQL5.7为例了解一下执行计划
Apr 13 MySQL
SQL Server #{}可以防止SQL注入
May 11 SQL Server
Redis基本数据类型String常用操作命令
Jun 01 Redis
MySQL事务的ACID特性以及并发问题方案
Jul 15 MySQL
SQLServer常见数学函数梳理总结
Aug 05 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中几个常用的魔术常量
2012/02/23 PHP
php 批量添加多行文本框textarea一行一个
2014/06/03 PHP
php对包含html标签的字符串进行截取的函数分享
2014/06/19 PHP
php事件驱动化设计详解
2016/11/10 PHP
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
15 个 JavaScript Web UI 库
2010/05/19 Javascript
读jQuery之九 一些瑕疵说明
2011/06/21 Javascript
通过上下左右键和回车键切换光标实现代码
2013/03/08 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
用js传递value默认值的示例代码
2014/09/11 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
前端微信支付js代码
2016/07/25 Javascript
jQuery插件ajaxFileUpload异步上传文件
2016/10/19 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
浅谈JavaScript的innerWidth与innerHeight
2017/10/12 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
React Native中NavigatorIOS组件的简单使用详解
2018/01/27 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
2019/02/22 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
JavaScript 实现下雪特效的示例代码
2020/09/09 Javascript
Python中字符串对齐方法介绍
2015/05/21 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
Python Des加密解密如何实现软件注册码机器码
2020/01/08 Python
python实现图像拼接
2020/03/05 Python
加拿大时装零售商:Influence U
2018/12/22 全球购物
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
高分子材料个人求职信范文
2013/09/25 职场文书
营业员个人总结的自我评价
2013/10/25 职场文书
医院总经理职责
2013/12/26 职场文书
网络工程专业自荐信范文
2014/03/16 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
matlab xlabel位置的设置方式
2021/05/21 Python
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL
使用HttpSessionListener监听器实战
2022/03/17 Java/Android
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python