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

bjg7j2ky  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(404)

计算Hive中的时差并需要它hours:minutes:秒。我得到的答案不太正确。
这是我尝试过的问题

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

ego6inou

ego6inou1#

@用户2510479
正如@mazaneicha所指出的,从\u unixtime函数转换为当前的系统时区,这导致您的结果 07:49:50 而不是 01:49:50 要获得预期的结果(如果您更喜欢使用配置单元函数),您可以将\u unixtime输出转换为utc,并在其上使用日期\u格式(从配置单元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字符串

相关问题