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

数据库 相关文章推荐
多表查询、事务、DCL
Apr 05 MySQL
MySQL获取所有分类的前N条记录
May 07 MySQL
Mysql基础知识点汇总
May 26 MySQL
mysql主从复制的实现步骤
Oct 24 MySQL
关于SpringBoot 使用 Redis 分布式锁解决并发问题
Nov 17 Redis
mysql下的max_allowed_packet参数设置详解
Feb 12 MySQL
SQL SERVER存储过程用法详解
Feb 24 SQL Server
MySQL多表查询机制
Mar 17 MySQL
基于Redis6.2.6版本部署Redis Cluster集群的问题
Apr 01 Redis
MySQL创建管理RANGE分区
Apr 13 MySQL
PostgreSQL基于pgrouting的路径规划处理方法
Apr 18 PostgreSQL
Windows 64位 安装 mysql 8.0.28 图文教程
Apr 19 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/05/16 PHP
php表单提交问题的解决方法
2011/04/12 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
jQuery 获取URL参数的插件
2010/03/04 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
JS二维数组的定义说明
2014/03/03 Javascript
jQuery滚动加载图片实现原理
2015/12/14 Javascript
原生JS和jQuery版实现文件上传功能
2016/04/18 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
详谈表单格式化插件jquery.serializeJSON
2017/06/23 jQuery
vue-router history模式下的微信分享小结
2018/07/05 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
解决layer弹出层中表单不起作用的问题
2019/09/09 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
使用Python内置的模块与函数进行不同进制的数的转换
2016/03/12 Python
python机器学习理论与实战(六)支持向量机
2018/01/19 Python
python导入模块交叉引用的方法
2019/01/19 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
Python callable内置函数原理解析
2020/03/05 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
Python的in,is和id函数代码实例
2020/04/18 Python
详解python如何引用包package
2020/06/07 Python
python实现自动清理重复文件
2020/08/24 Python
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
2015/11/18 面试题
JAVA高级程序员面试题
2013/09/06 面试题
精彩的推荐信范文
2013/11/26 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
售后服务承诺函格式
2015/01/21 职场文书
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers