我们需要使用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)。
答案 0 :(得分:0)
从这个答案中可以看出,毫秒时间内,您不应该使用unix_timestamp
函数,因为这些函数会将日期视为自纪元以来的秒数。
How do I get millisecond precision in hive?
因此,您可以CAST
将其TIMESTAMP
再DOUBLE
来获得所需的结果。
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