Sou*_*nis 15 hive epoch milliseconds unix-timestamp
我们在Hive中存储了一个时间戳纪元列(BIGINT).我们希望在这个时代获得Date'yyyy-MM-dd'.问题是我的纪元是以毫秒为单位,例如1409535303522.所以选择时间戳,from_unixtime(timestamp,'yyyy-MM-dd')给出错误的日期结果,因为它预期纪元数秒.
所以我尝试将它除以1000.但是它会转换为Double,我们无法对其应用函数.当我尝试将此双精度转换为Bigint时,即使CAST也无效.
Sou*_*nis 28
通过以下查询解决了它:
select timestamp, from_unixtime(CAST(timestamp/1000 as BIGINT), 'yyyy-MM-dd') from Hadoop_V1_Main_text_archieved limit 10;
Run Code Online (Sandbox Code Playgroud)
小智 5
该类型应该double确保精度不丢失:
select from_unixtime(cast(1601256179170 as double)/1000.0, "yyyy-MM-dd hh:mm:ss.SSS") as event_timestamp
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48399 次 |
| 最近记录: |