Hive 蜂箱中的时差计算给出错误答案

Hive 蜂箱中的时差计算给出错误答案,hive,hql,unix-timestamp,Hive,Hql,Unix Timestamp,计算蜂巢中的时差,需要时数:分:秒。我得到的答案不太正确 这是我尝试过的问题 SELECT from_unixtime(UNIX_TIMESTAMP('2019-01-01 12:00:00') - UNIX_TIMESTAMP('2019-01-01 10:10:10'),'hh:mm:ss'); 我得到的答案是07:49:50 如何重构代码,以便得到答案01:49:50@user2510479 如@mazaneicha所述,from_unixtime函数将转换为当前系统时区,导致结果为07

计算蜂巢中的时差,需要时数:分:秒。我得到的答案不太正确

这是我尝试过的问题

SELECT from_unixtime(UNIX_TIMESTAMP('2019-01-01 12:00:00') - UNIX_TIMESTAMP('2019-01-01 10:10:10'),'hh:mm:ss');
我得到的答案是07:49:50

如何重构代码,以便得到答案01:49:50

@user2510479

如@mazaneicha所述,from_unixtime函数将转换为当前系统时区,导致结果为
07:49:50
,而不是
01:49:50

要获得预期结果(如果您更喜欢使用配置单元函数),您可以将_unixtime输出转换为UTC,并在其上使用日期_格式(从配置单元1.2.0开始)以获得所需的输出

SELECT date_format(to_utc_timestamp(from_unixtime( 
      (UNIX_TIMESTAMP('2019-01-01 12:00:00') 
     - UNIX_TIMESTAMP('2019-01-01 10:10:10')) ),'EST'), 'HH:mm:ss')

您可以在

中引用dateformat字符串,这太完美了!