Hive时间日期函数一文详解+代码实例

这篇具有很好参考价值的文章主要介绍了Hive时间日期函数一文详解+代码实例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


目录

前言

一、HiveSQL运行过程

二、Hive时间函数

1.获取当前时间

1.current_date()

2. current_timestamp()

3. unix_timestamp()

2.获取指定时间维度

1. year()

2.quarter()

3.month()

4.day()

5.hour()

6.minute()

7.second

8.weekofyear()

9. dayofweek()

 10.last_day()

 11.next_day()

12.trunc()

 3.时间格式转换

 1.to_date()

2. from_unixtime()

3.date_format

 4.unix_timestamp

5. from_utc_timestamp/to_utc_timestamp

6. to_unix_timestamp

 4.时间运算

 1.datediff()

 2.date_sub()

 3.date_add()

 4.months_between()

点关注,防走丢,如有纰漏之处,请留言指教,非常感谢


前言

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。Hive中的表示纯逻辑表,只有表的定义等,即表的元数据(存储于MySQL中)。本质就是Hadoop的目录/文件,这种设计方式实现了元数据与数据存储分离。Hive本身不存储数据,它完全依赖HDFS和MapReduce。

时间在数据库中经常作为时间索引,在数据入库和出库以及更新的时候都需要变化。在一些指标计算或者是提取某段时间的数据时,都会根据数据库中的时间索引数据进行操作。因此很大一部分我们操作数据都得先从时间数据下手,但是想要真正提取到我们想要的时间作为索引,还需要我们掌握许多功能函数方便我们操作,这是一个比较复杂的运用过程。因此特地写下这篇文章,记录一些十分好用常用的处理Hive数据库SQL时间数据的函数,以及实例运用这些函数完成一些复杂查询任务。希望能够帮助到正在看此博文的各位,如果还有什么问题解决不了尽请在评论区提出,博主会一一作答。


一、HiveSQL运行过程

本质上HiveSQL是将sql语句转换为MapReduce程序:

hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

这里不展开细化,直接仅需要知道Hive的SQL是和传统MYSQL和SQL server的SQL语法是不同的就够了,他们之间的语法也是存在很多差异。

二、Hive时间函数

1.获取当前时间

共有以下函数可以获取当前时间:

函数 说明 返回
current_date() 获取当前格式化日期 2022-08-08
current_timestamp() 获取当前格式化日期 2022-08-08 11:03:34.946
unix_timestamp() 获取当前unix时间戳 1659927898

1.current_date()

select current_date();

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

2. current_timestamp()

select current_timestamp();

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

3. unix_timestamp()

select unix_timestamp();

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

2.获取指定时间维度

共有以下函数可以获取指定时间维度:

函数 说明 返回结果
year() 获取日期中的年 2022
quarter() 获取日期中的季度 3
month() 获取日期中的月 8
day() 获取日期中的日 8
hour() 获取日期中的小时 11
minute() 获取日期中的分 32
second() 获取日期中的秒 52
weekofyear() 获取日期在当前年份的第几周 32
dayofweek() 获取日期在当前周的第几天(周日为第一天) 2
last_day() 获取日期当月最后一天 2022-08-31
next_day() 获取当前日期之后的下个星期几的日期 2022-08-15
trunc() 获取日期月初(参数MM),年初日期(参数YY) 2022-08-01,2022-01-01

1. year()

select year(current_date());

hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

2.quarter()

select year(current_date());

hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

3.month()

select month(current_date());

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

4.day()

select day(current_date());

hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

5.hour()

select hour(current_timestamp());

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

6.minute()

select minute(current_timestamp());

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

7.second

select second(current_timestamp());

hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

8.weekofyear()

select weekofyear(current_timestamp());

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

9. dayofweek()

select dayofweek(current_timestamp());

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

 10.last_day()

select last_day(current_timestamp());

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

 11.next_day()

select next_day(current_date(),'MO');

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

12.trunc()

SELECT TRUNC(CURRENT_DATE(),'MM') 

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

SELECT TRUNC(CURRENT_DATE(),'YY') 

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

 3.时间格式转换

函数 说明 返回
to_date() 获取日期时间中日期部分数据 2022-08-08
from_unixtime() unix时间戳到转时间格式 yyyy-MM-dd
date_format() 日期、时间戳、字符串类型格式化输出标准时间格式 yyyy-MM-dd
unix_timestamp() 获取当前时间的unix时间戳和日期转UNIX时间戳函数 1659938033
from_utc_timestamp/to_utc_timestamp() utc时间转换 yyyy-MM-dd
to_unix_timestamp() 日期转unix时间戳 1659938033

 1.to_date()

select to_date(current_timestamp())

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

2. from_unixtime()

select from_unixtime(1659938033,'yyyy-MM-dd')

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

select from_unixtime(1659938033,'yyyyMMdd')

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:dd:ss');

hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

3.date_format

select date_format(current_timestamp(),'yyyy-MM-dd HH:mm:ss'); 

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

select date_format(current_date(),'yyyy-MM-dd');

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

select date_format('2022-08-09 12:12:12','yyyy-MM-dd HH:mm:ss'); 

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

 4.unix_timestamp

select unix_timestamp();

hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

SELECT unix_timestamp(current_timestamp())

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

5. from_utc_timestamp/to_utc_timestamp

select from_utc_timestamp(current_timestamp(),8);

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

select to_utc_timestamp(current_timestamp(),8);

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

6. to_unix_timestamp

select to_unix_timestamp('2022-08-09 11:10:27','yyyy-MM-dd HH:dd:ss');

hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

 4.时间运算

关于时间运算有很多个不同的方法来实现,自定义函数或者是使用函数拼凑获取自己想要的结果就行了。

这里列举几个常用的时间运算函数:

函数 说明 返回
datediff() 日期比较函数,返回开始日期减去结束日期的天数 前者大于后者,返回值为正,否则,返回值为负。
date_sub() 日期减少函数,返回日期前n天的日期 返回日期前n天的日期
date_add() 日期增加函数,返回日期后n天的日期 返回日期后n天的日期
months_between() 返回两个日期之间包含的月数(结果为double类型) double类型月份数值

 1.datediff()

select datediff('2022-08-14','2022-08-04');

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

select datediff('2022-08-04','2022-08-14');

hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

 2.date_sub()

SELECT date_sub('2022-08-04',10)

hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

SELECT date_sub('2022-08-04',-10)

hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

 3.date_add()

其实和date_sub可以正负号替换,记住一个就行了:

select DATE_ADD('2022-08-04',10) 

hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

 4.months_between()

select months_between('2022-08-04','2022-08-14')

 hive 日期函数,一文速学-SQL各类数据库操作,大数据,数据分析,数据仓库,数据挖掘,hive

点关注,防走丢,如有纰漏之处,请留言指教,非常感谢

以上就是本期全部内容。我是fanstuck ,有问题大家随时留言讨论 ,我们下期见。文章来源地址https://www.toymoban.com/news/detail-784937.html

到了这里,关于Hive时间日期函数一文详解+代码实例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hive学习(12)Hive常用日期函数

    1、hive返回当天三种方式 2、from_unixtime:转化unix时间戳到当前时区的时间格式 3、unix_timestamp:获取当前unix时间戳 4、year:返回日期中的年 5、month:返回日期中的月份 6、day:返回日期中的天 7、hour:返回日期中的小时 8、minute:返回日期中的分钟 9、second:返回日期中的秒

    2024年02月11日
    浏览(35)
  • Hive日期函数详细讲解

    Hive 提供了一系列的内建日期函数,用于处理日期和时间数据。以下是您提到的日期函数的详细讲解,包括案例和使用注意事项: FROM_UNIXTIME() 功能 :将 Unix 时间戳(秒为单位)转换为日期时间格式。 语法 : FROM_UNIXTIME(unix_timestamp[, format]) 案例 : SELECT FROM_UNIXTIME(1609459200);  

    2024年01月20日
    浏览(91)
  • Hive常用的日期函数

    注意: current_timestamp() 获取的时UTC默认时区。 给定一个时间戳可基于 from_utc_timestamp/to_utc_timestamp 进行转换。 注意: nbsp;nbsp; 如果当前年的第一个周,天数超过3天,那就是当前年的第一周; nbsp;nbsp; 如果当前年的第一个周,天数小于等于3天,那就是上一年的最后一周。 wee

    2024年02月07日
    浏览(43)
  • Hive常见的日期函数

    1、fom_unixtime UNIX 时间戳转日期 语法:fom_unixtime(bigint unixtime[, string format]); 返回类型:string 说明:转化 UNIX 时间戳(从1970-01-01 00:00:00 UTC 到指定时间的秒数)到当前时区的时间格式。 例如: select from_unixtime(1590000000, \\\'yyyy-MM-dd\\\'); 返回: 2020-05-21 2、unix_timestamp 获取当前 UNIX 时间

    2024年04月10日
    浏览(68)
  • 1/50 hive sql 日期处理函数

    目录 一、获取当前时间 二、获取指定时间 三、转换时间格式 【1】to_date(string timestamp) 【2】date_format(date string timestamp,string format) 【3】from_unixtime(bigint unixtime,string format) 【4】unix_timestamp(date string timestamp,string pattern)  【5】其余格式的指定转换 regexp_replace()、from_unixtime(unix_ti

    2023年04月25日
    浏览(46)
  • Hive日期函数应用之月份差值计算

    目前计算Hive月份差值有多种方法,下面介绍两种方法进行计算,各有优缺点 一个常见的方法是首先将日期转换为 Unix 时间戳(如果它们还不是的话),然后通过计算时间戳之间的差值,并将这个差值转换为月份。然而,这种方法并不总是准确的,因为它假设每个月都有相同

    2024年01月22日
    浏览(45)
  • spark SQL 怎么将一个时间戳字符串转换成hive支持的时间日期类型?

    在 Spark SQL 中,可以使用 to_timestamp 函数将一个时间戳字符串转换成 Hive 支持的时间日期类型。这个函数的语法如下: 其中,timestampStr 表示要转换的时间戳字符串,format 表示时间戳字符串的格式,格式必须与时间戳字符串的实际格式相匹配。如果不指定格式,Spark 会使用默认

    2024年02月11日
    浏览(47)
  • Hive的时间操作函数

    hive 里面的时间函数有很多,今天单讲dayofweek函数,背景:有时候不仅要出日报,还要出周报,需要很多天归为同一周,求sum或者均值; 在Hive中,可以使用dayofweek()函数来计算某个日期是一周的第几天。该函数的语法如下: 其中,date表示要计算的日期,可以是一个日期字符

    2024年04月29日
    浏览(30)
  • Hive--时间函数大全

    注:第二个参数为时间格式,默认是’yyyy-MM-dd HH:mm:ss’ 注:to_date() 默认转化格式为’yyyy-MM-dd’ 注:next_day()第⼆个参数⽀持⼩写、⼤写、缩写(su/sun/sunday)

    2024年02月07日
    浏览(46)
  • hive时间和字符串互转,时间函数

    hive里经常需要将字符串转化为date或timestamp 或者转化为日期格式的string 先说一个简单的 cast(xx as date/string/timestamp) 这个大多情况都可以用 1.to_date to_date只保留年月日,参数必须是string类型的yyyy-MM-dd HH:mm:ss或者date或timestamp类型, 返回值是date类型,注意这个返回类型,这个是少数

    2024年02月02日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包