hive函数之日期函数

210 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第11天,点击查看活动详情

本文还是继续hive函数系列更文,这次讲到的是比较常用的日期函数,在日期函数里面常见的一些有获取时间戳、转换日期格式,都是sql设计中非常实用的,那么就开始介绍吧。

日期函数

1、 from_unixtime unix时间戳转日期函数 作用:时间戳转换日期

常见使用方法:from_unixtime(bigint unixtime[, string format])

具体功能描述:这个函数的返回类型是string,主要实现的功能就是转化UNIX 时间戳到当前时区的时间格式,使用的参数可以是从1970-01-01 00:00:00 UTC 到指定时间,单位必须是秒,参数是整数,如果拿到的参数是毫秒,需要先转换为秒单位才行。入参也可以是一个获取当前时间的函数方法,比如unix_timestamp(),另外也要定义出需要转换的格式,比如yyyy-MM-dd

select FROM_UNIXTIME(unix_timestamp(),'yyyy-MM-dd') -- 获取当前时间
>>  2022 - 03 - 02  
select from_unixtime(1590000000, 'yyyy-MM-dd');   -- 时间戳转日期
>>  2020 - 05 - 21

2、unix_timestamp 获取当前unix时间戳函数

常见使用方法:unix_timestamp()

具体功能描述:这个函数的使用说明很简单,就是获取当前时区的 UNIX 时间戳,获取的结果是以秒为单位,你也可以修改为毫秒。重点说一下这个函数的返回类型是bigint ,在定义字段类型的时候不要弄错了。

select unix_timestamp() -- 获取当前时间戳 
>>  1646193154

3、 unix_timestamp 日期转unix 时间戳函数

常见使用方法:unix_timestamp(string date)

具体功能描述:可以看到传入的参数格式是一个string,函数的返回类型也是bigint ,上面已经介绍了将时间戳改为日期格式的函数,当然就会有将日期格式转换为时间戳的,这里需要的入参格式为 “yyyy-MM-dd HH:mm:ss” ,转换为单位为秒的的时间戳。这里还要注意一下,如果入参错误,或者格式不正确,那么会转换失败,返回 NULL。

select unix_timestamp( '2020-05-21 02:40:00' ); 
>>  1590000000