Hive日期格式转换方法总结

 更新时间:2022年06月23日 11:56:39   作者:数据人阿多  
这篇文章主要为大家介绍了Hive日期格式转换方法总结,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

背景

日期计算平时在业务取数时经常涉及到,但是数据库中经常存放着不同的日期格式,有的存放是时间戳、有的是字符串等,这时需要对其进行转换才能提取到准确的数据,这里介绍的均是hive里面的函数功能,以下内容均是业务的数据需求经常使用的部分

时间戳

unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒,一般为10位的整数

一个在线工具:http://tools.jb51.net/code/unixtime

时间戳

字符串日期如:'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 HQL支持的2种查询语句风格,你喜欢哪一种?

Python 基于datetime库的日期时间数据处理

以上就是Hive日期格式转换方法总结的详细内容,更多关于Hive日期格式转换的资料请关注脚本之家其它相关文章!

相关文章

  • MySQL与Oracle差异比较之三 函数

    MySQL与Oracle差异比较之三 函数

    这篇文章主要介绍了MySQL与Oracle差异比较之三 函数,需要的朋友可以参考下
    2017-04-04
  • 如何使用navicat远程连接openGauss

    如何使用navicat远程连接openGauss

    公司要在openEuler系统中安装openGauss数据库,经过几天的查资料,终于是安装成功了,并且能在navicat中远程连接使用,本文给大家介绍如何使用navicat远程连接openGauss,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • DeepinV20快速安装Mariadb的详细步骤

    DeepinV20快速安装Mariadb的详细步骤

    本文给大家介绍DeepinV20安装Mariadb的详细步骤,MariaDB数据库管理系统是MySQL的一个分支,添加一些功能支持本地的非阻塞操作和进度报告,具体内容详情跟随小编一起看看吧
    2021-07-07
  • 简单聊一聊SQL注入及防止SQL注入

    简单聊一聊SQL注入及防止SQL注入

    众所周知SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,下面这篇文章主要给大家介绍了关于SQL注入及防止SQL注入的相关资料,需要的朋友可以参考下
    2022-03-03
  • 在PostgreSQL中使用日期类型时一些需要注意的地方

    在PostgreSQL中使用日期类型时一些需要注意的地方

    这篇文章主要介绍了在PostgreSQL中使用日期类型时一些需要注意的地方,包括时间戳和日期转换等方面,需要的朋友可以参考下
    2015-04-04
  • SQL注入的2个小Trick及示例总结

    SQL注入的2个小Trick及示例总结

    这篇文章主要给大家介绍了关于SQL注入的2个小Trick的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • DBeaver复制数据库图文教程(数据库表结构以及内容)

    DBeaver复制数据库图文教程(数据库表结构以及内容)

    DBeaver提供一个图形界面用来查看数据库结构、执行SQL查询和脚本,下面这篇文章主要给大家介绍了关于DBeaver复制数据库(数据库表结构以及内容)的相关资料,需要的朋友可以参考下
    2024-01-01
  • 开源数据库设计神器chiner的安装及初体验介绍

    开源数据库设计神器chiner的安装及初体验介绍

    最近在造轮子,从 0 到 1 的那种,就差前台的界面了,大家可以耐心耐心耐心期待一下。其中需要设计一些数据库表,可以通过 Navicat 这种图形化管理工具直接开搞,也可以通过一些数据库设计工具来搞,比如说 PowerDesigner,更专业一点
    2022-02-02
  • sql 插入数据的三种常用方法及小贴士

    sql 插入数据的三种常用方法及小贴士

    我们在插入数据到数据库中的时候,常用的语句如下
    2009-07-07
  • Dbeaver做数据迁移的详细过程记录

    Dbeaver做数据迁移的详细过程记录

    DBeaver是一款跨平台的通用数据库开源管理工具,支持 MySQL,PostgreSQL,Oracle,DB2,MSSQL,Sybase,Mimer,HSQLDB,Derby以及其他兼容JDBC的数据库,下面这篇文章主要给大家介绍了关于Dbeaver做数据迁移的详细过程,需要的朋友可以参考下
    2023-05-05

最新评论