代码之家  ›  专栏  ›  技术社区  ›  Akhila

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

  •  0
  • Akhila  · 技术社区  · 6 年前

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

    请找到下面的屏幕截图。

    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解决此问题的解决方案。(在配置单元中不使用UDF)。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Kaushik Nayak    6 年前

    根据这个答案,在毫秒内,您不应该使用 unix_timestamp 函数,因为这些函数将日期视为自历元起的秒数。

    How do I get millisecond precision in hive?

    所以,你可以 CAST it收件人 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