美文网首页
hive的时间处理函数

hive的时间处理函数

作者: 不分享的知识毫无意义 | 来源:发表于2019-11-25 16:18 被阅读0次

由于时间在hive里一般都是按照str存储的,有多重格式,比如时间戳格式或者标准的时间格式,有很多函数可以用于时间格式的换算。

1.unix时间格式转换

1.1 一些函数

  • current_timestamp()
    获取当前的日期,是标准格式的,'yyyyMMddHH:mm:ss'
  • unix_timestamp()
    获取当前的unix时间格式,这个函数没有参数。
select unix_timestamp()

unix_timestamp()可以把日期转换为unix格式,标准用法为 unix_timestamp(string date,string pattern)

select unix_timestamp('20111207 13:01:03','yyyyMMddHH:mm:ss')
输出:1323234063
  • from_unixtime()
    将unix时间转换为日期格式,标准用法from_unixtime(bigint unixtime[, stringformat])
    其中,stringformat可以省略,默认为'yyyy-MM-dd HH:mm:ss'。
select from_unixtime(1323234063)
输出:2011-12-07 13:01:03

1.2 unix时间戳和标准时间的换算方法

unix字符串相减得到的是秒,要进行转化的话:

  • 转化为分钟,除以60;
  • 转化为小时,除以3600;
  • 转化为天,除以24*3600.
    hive的默认时间戳是10位(秒级别)的,也就是说两个时间戳相减得到的是秒。
    值得注意的是,有些时候有的时间戳是13位的(毫秒级别),这个时候还要除以1000。

2.日期操作函数

  • current_date
    获取当前的日期,是标准的日期格式,如'2019-11-24'。
  • date_sub()
    日期相减函数,语法为date_sub (string startdate,int days) ,其中第一个参数为日期,第二个参数为整数,表示减掉的天数。
hive> select date_sub('2019-11-25',1);
OK
2019-11-24
  • date_add()
    日期增加函数,语法为date_add(string startdate, int days) ,其中第一个参数为日期,第二个参数为整数,表示增加的天数。
select date_add('2019-11-25',1);
OK
2019-11-26
  • datediff()
    日期相减函数,得到两个日期之间的间隔,语法为datediff(string enddate,string startdate) ,返回值是int,表示间隔的日期。
    注意这个函数没有下划线。
select datediff('2019-11-25','2019-11-24');
返回值:1

3.日期截取函数

  • to_date()
    将一些非标准的日期,比如'2019-11-25 17:47:08.971',to_date()的语法为to_date(string timestamp)。
select to_date('2019-11-25 17:47:08.971')
- 输出:2019-11-25
  • year()
    求日期所在的年份,语法为year(string timestamp)
select year('2019-11-25 17:47:08.971')
- 输出:2019
  • month()
    求日期所在的月份,语法为month(string timestamp)
select month('2019-11-25 17:47:08.971')
-输出:11
  • day()
    求日期所在的天,语法为day(string timestamp)
select day('2019-11-25 17:47:08.971')
-输出:25
  • hour、minute、second
    跟前几个一样,分别求时分秒,这个就不举例子了。
  • weekofday
    返回时一年中的第几周,语法为weekofyear(string timestamp)
select weekofyear('2019-11-25 17:47:08.971')
-输出:48

相关文章

  • hive的时间处理函数

    由于时间在hive里一般都是按照str存储的,有多重格式,比如时间戳格式或者标准的时间格式,有很多函数可以用于时间...

  • hive中的时间处理函数

    日期函数UNIX时间戳转日期函数: from_unixtime语法: from_unixtime(bigint...

  • HIVE UDTF 自定义函数

    HIVE UDTF 自定义函数 关键词:HIVE UDTF 开发 实例Hive运行用户自定义函数对数据信息处理,...

  • Hive自定义UDF UDAF UDTF

    hive允许用户使用自定义函数解决hive 自带函数无法处理的逻辑。hive自定义函数只在当前线程内临时有效,可以...

  • hive中的日期处理

    hive自带的时间/日期处理函数 将某种格式的时间转换为Unix时间戳select unix_timestamp(...

  • hive时间函数

    hive日期函数函数用法含参方式用法备注 date2datekeydate格式转换成datekeydate2dat...

  • 大数据开发之Hive篇6-Hive函数详解

    备注:Hive 版本 2.1.1 一.Hive函数概述 1.1 Hive函数分类 函数/UDF输入一行记录,输出一...

  • Hive—date函数详解

    引言   在hive中我们经常需要处理日期数据,hive内置了3个日期函数,其格式只能为yyyy-MM-dd格式或...

  • hive 时间函数问题

    把当前时间转换成 unix 时间戳 select unix_timestamp(); 取正确的当前时间,用c...

  • 如何在 Inceptor 中使用日期函数获取与转换时间

    Inceptor 日期函数之 时间获取与转换 Inceptor 可以理解成 Hive,Inceptor 的日期函数...

网友评论

      本文标题:hive的时间处理函数

      本文链接:https://www.haomeiwen.com/subject/soymbctx.html