大数据学习-hive(三:时间戳转换)

一:俩种时间戳

1. 十位时间戳

十位时间戳代表的是到秒级别。
例如:1644206709158

2. 十三位时间戳

十三位时间戳代表的是到毫秒级别。
例如:1644206709

二:时间戳相互转化

1. 十三位转为十位

### select cast(1644206709158/1000 as bigint) from a

2 .时间戳格式转换

2.1 十三位转换为日期

from_unixtime(cast(1644206709158/1000 as bigint),'yyyy-MM-dd HH:mm:ss')
结果:2022-02-07 12:05:09

2.2 十位转换为日期

from_unixtime(cast(1644206709 as bigint),'yyyy-MM-dd HH:mm:ss')
结果:2022-02-07 12:05:09

2.3 日期转为十位时间戳

unix_timestamp('2022-02-07 12:05:09') 
结果:1644206709

2.4 日期转为十三位时间戳

unix_timestamp('2022-02-07 12:05:09')*1000
结果: 1644206709000

2.5 当前日期的时间戳和时间

current_timestamp() 结果:2022-02-07 14:53:10
unix_timestamp()  结果:1644216754

三:问题

1. 当我们将十三位时间戳转为日期,不相除1000,会得到以下的结果。

from_unixtime(cast(1644206709000 as bigint),'yyyy-MM-dd HH:mm:ss')
结果:54072-11-01 13:50:00

你可能感兴趣的:(hive,hive,hadoop,数据仓库)