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

数据库 相关文章推荐
Sql-Server数据库单表查询 4.3实验课
Apr 05 SQL Server
基于Redis过期事件实现订单超时取消
May 08 Redis
MySQL 覆盖索引的优点
May 19 MySQL
MYSQL主从数据库同步备份配置的方法
May 26 MySQL
mysql优化之query_cache_limit参数说明
Jul 01 MySQL
MySQL query_cache_type 参数与使用详解
Jul 01 MySQL
PostGIS的安装与入门使用指南
Jan 18 PostgreSQL
Redis监控工具RedisInsight安装与使用
Mar 21 Redis
解决 Redis 秒杀超卖场景的高并发
Apr 12 Redis
深入理解MySQL中MVCC与BufferPool缓存机制
May 25 MySQL
MySQL范围查询优化的场景实例详解
Jun 10 MySQL
mysql sock 文件解析及作用讲解
Jul 15 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 上传功能实例代码
2010/04/13 PHP
PHP学习笔记之一
2011/01/17 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
详解HTTP Cookie状态管理机制
2016/01/14 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
js 效率组装字符串 StringBuffer
2009/12/23 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
2016/12/12 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
bootstrap表单示例代码分享
2017/05/18 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
2018/12/10 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
python实现linux服务器批量修改密码并生成execl
2014/04/22 Python
Python 多线程抓取图片效率对比
2016/02/27 Python
通过shell+python实现企业微信预警
2019/03/07 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
10分钟用python搭建一个超好用的CMDB系统
2019/07/17 Python
python selenium循环登陆网站的实现
2019/11/04 Python
关于sys.stdout和print的区别详解
2019/12/05 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
医学专业个人求职自荐信格式
2013/09/23 职场文书
服务生自我鉴定
2014/01/22 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
党员个人承诺书
2015/04/27 职场文书
浅谈Java父子类加载顺序
2021/08/04 Java/Android