hive 时间戳函数之unix_timestamp,from_unixtime

Posted dcx-1993

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive 时间戳函数之unix_timestamp,from_unixtime相关的知识,希望对你有一定的参考价值。

一. 日期>>>>时间戳

1.unix_timestamp() 获取当前时间戳

例如:select unix_timestamp()   --1565858389

2.unix_timestamp(string timestame) 输入的时间戳格式必须为‘yyyy-MM-dd HH:mm:ss‘,如不符合则返回null

例如:
select unix_timestamp(2019-08-15 16:40:00)   --1565858400
select unix_timestamp(2019-08-15)  --null

3.unix_timestamp(string date,string pattern) 将指定时间字符串格式字符串转化成unix时间戳,如不符合则返回null


例如:
select unix_timestamp(2019-08-15,yyyy-MM-dd)   --1565798400

select unix_timestamp(2019-08-15 16:40:00,yyyy-MM-dd HH:mm:ss)   --1565858400

select unix_timestamp(2019-08-15,yyyy-MM-dd HH:mm:ss)   --null

二. 时间戳>>>>日期

1.from_unixtime(bigint unixtime,string format) 将时间戳秒数转化为UTC时间,并用字符串表示,可通过format规定的时间格式,指定输出的时间格式,其中unixtime 是10位的时间戳值,而13位的所谓毫秒的是不可以的。

例如:
select from_unixtime(1565858389,yyyy-MM-dd HH:mm:ss)  --2019-08-15 16:39:49

select from_unixtime(1565858389,yyyy-MM-dd)   --2019-08-15

2.如果unixtime为13位的,需要先转成10位

select from_unixtime(cast(1553184000488/1000 as int),yyyy-MM-dd HH:mm:ss)   --2019-03-22 00:00:00

select from_unixtime(cast(substr(1553184000488,1,10) as int),yyyy-MM-dd HH:mm:ss)  --2019-03-22 00:00:00

 三.获取当前时间

select from_unixtime(unix_timestamp(),yyyy-MM-dd HH:mm:ss)   -- 2019-08-15 17:18:55

 

以上是关于hive 时间戳函数之unix_timestamp,from_unixtime的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 unix_timestamp 和 from_unixtime Hive 函数将数据类型更改为时间戳

Hive unix_timestamp 函数计算不匹配

hive函数总结-日期函数

Hive 的 unix_timestamp 和 from_unixtime 函数

hive6:字符串和日期的转换常用函数

hive时间差