Hive 需要计算TimeDiff,包括配置单元中的毫秒

Hive 需要计算TimeDiff,包括配置单元中的毫秒,hive,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 在上面的例子中,我们只得到秒,但我们无法得到毫秒精度 请您提供使用配置单元解决此问题的解决方案。(不在配置单元中使用UDF)。根据此答案,在毫秒内,您不应使用u

我们需要使用色调计算蜂巢中的时间差和毫秒数

请找到下面的屏幕截图

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

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


请您提供使用配置单元解决此问题的解决方案。(不在配置单元中使用UDF)。

根据此答案,在毫秒内,您不应使用
unix\u 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