TimeDiff计算需要包括HIVE中的毫秒数

时间:2018-04-05 04:39:31

标签: hive

我们需要使用HUE计算TIME DIFF以及HIVE中的毫秒数。

请找到以下截图。

select 
((unix_timestamp('2017-12-26 14:35:19.609') 
- unix_timestamp('2017-12-26 14:35:18.779'))*1000) as timediff

输出:

timediff
 1000

在上面的例子中,我们只得到秒,但我们无法获得毫秒精度。

请您使用HIVE提供解决方案以解决此问题。(不使用HIVE中的UDF)。

1 个答案:

答案 0 :(得分:0)

从这个答案中可以看出,毫秒时间内,您不应该使用unix_timestamp函数,因为这些函数会将日期视为自纪元以来的秒数。

How do I get millisecond precision in hive?

因此,您可以CAST将其TIMESTAMPDOUBLE来获得所需的结果。

SELECT ROUND((CAST(CAST('2017-12-26 14:35:19.609' AS TIMESTAMP) AS DOUBLE) 
            - CAST(CAST('2017-12-26 14:35:18.779' AS TIMESTAMP) AS DOUBLE)) * 1000)
as timediff

timediff 
---------
 830