以下日期投射不显示毫秒。
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
获得毫秒的方法是什么?
感谢。
答案 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