蜂巢日期铸造切碎毫秒

时间:2017-08-04 00:37:19

标签: hive hiveql

以下日期投射不显示毫秒。

select from_unixtime(unix_timestamp("2017-07-31 23:48:25.957" , "yyyy-MM-dd HH:mm:ss.SSS"));

2017-07-31 23:48:25

获得毫秒的方法是什么?

感谢。

2 个答案:

答案 0 :(得分:1)

由于此字符串采用ISO格式,因此可以直接进行转换

hive> select cast("2017-07-31 23:48:25.957" as timestamp);
OK
2017-07-31 23:48:25.957

hive> select timestamp("2017-07-31 23:48:25.957");
OK
2017-07-31 23:48:25.957

答案 1 :(得分:-1)

因为unix_timestamp基于秒,它会截断毫秒。

相反,您可以使用date_format将字符串转换为时间戳,这会保留毫秒数。然后是from_utc_timestamp。

select from_utc_timestamp(date_format("2017-07-31 23:48:25.957",'yyyy-MM-dd HH:mm:ss.SSS'),'UTC') as datetime