我们需要使用色调计算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)。
hwazgwia1#
根据这个答案,在毫秒内,您不应该使用 unix_timestamp 函数,因为这些函数将日期视为自epoch起的秒数。如何在Hive中获得毫秒精度?所以,你可以 CAST 它是 TIMESTAMP 然后 DOUBLE 以得到期望的结果。
unix_timestamp
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
1条答案
按热度按时间hwazgwia1#
根据这个答案,在毫秒内,您不应该使用
unix_timestamp
函数,因为这些函数将日期视为自epoch起的秒数。如何在Hive中获得毫秒精度?
所以,你可以
CAST
它是TIMESTAMP
然后DOUBLE
以得到期望的结果。