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存储过程之逻辑判断和条件控制
May 26 MySQL
Oracle以逗号分隔的字符串拆分为多行数据实例详解
Jul 16 Oracle
MySQL中utf8mb4排序规则示例
Aug 02 MySQL
关于redisson缓存序列化几枚大坑说明
Aug 04 Redis
Redis字典实现、Hash键冲突及渐进式rehash详解
Sep 04 Redis
Spark SQL 2.4.8 操作 Dataframe的两种方式
Oct 16 SQL Server
教你使用VS Code的MySQL扩展管理数据库的方法
Jan 22 MySQL
MySQL读取JSON转换的方式
Mar 18 MySQL
Redis 哨兵机制及配置实现
Mar 25 Redis
Redis数据同步之redis shake的实现方法
Apr 21 Redis
Mysql中的触发器定义及语法介绍
Jun 25 MySQL
mysql通过group by分组取最大时间对应数据的两种有效方法
Sep 23 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调用Java对象的方法
2006/10/09 PHP
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
ThinkPHP验证码使用简明教程
2014/03/05 PHP
php+xml编程之SimpleXML的应用实例
2015/01/24 PHP
PHP读书笔记整理_结构语句详解
2016/07/01 PHP
脚本安需导入(装载)的三种模式的对比
2007/06/24 Javascript
将函数的实际参数转换成数组的方法
2010/01/25 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
js转化毫秒为时间格式代码
2014/04/10 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
js基础知识(公有方法、私有方法、特权方法)
2015/11/06 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
Bootstrap CSS使用方法
2016/12/23 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
vue input输入框模糊查询的示例代码
2018/05/22 Javascript
ES6 class的应用实例分析
2019/06/27 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
2020/02/14 Javascript
python使用tcp实现局域网内文件传输
2020/03/20 Python
python3 拼接字符串的7种方法
2018/09/12 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
django2笔记之路由path语法的实现
2019/07/17 Python
对Django 中request.get和request.post的区别详解
2019/08/12 Python
python conda操作方法
2019/09/11 Python
使用Pyhton集合set()实现成果查漏的例子
2019/11/24 Python
python 画函数曲线示例
2019/12/04 Python
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
2012/12/19 HTML / CSS
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
英文自荐信格式
2013/11/28 职场文书
生活小常识广播稿
2014/09/16 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
党的群众路线教育实践活动对照检查剖析材料
2014/10/09 职场文书