hive中时间戳函数unix_timestamp与from_unixtime

一. 日期>>>>时间戳

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

例如:

select unix_timestamp('2020-03-26 00:00:00')   --1585152000
select unix_timestamp('2020-03-26')  --错误

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

例如:

select unix_timestamp('2020-03-26','yyyy-MM-dd')   --1585152000

select unix_timestamp('2020-03-26 00:00:00','yyyy-MM-dd HH:mm:ss')   --1585152000

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

二. 时间戳>>>>日期

1.from_unixtime(bigint unixtime,string format) 将时间戳秒数转化为UTC时间,并用字符串表示,可通过format规定的时间格式,指定输出的时间格式。

例如:

select from_unixtime(1517816629,'yyyy-MM-dd HH:mm:ss')  --2018-02-05 15:43:49

select from_unixtime(1517816629,'yyyy-MM-dd')   --2018-02-05

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

三、获取当前时间戳
unix_timestamp() 获取当前时间戳

例如:

select unix_timestamp()   --1563245372

四.获取当前时间

select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss')   -- 2020-03-31 09:27:34

你可能感兴趣的:(工作基础操作命令积累)