配置单元查询在基于where子句提供查询结果之前将mst时间戳转换为utc

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

我一直在为一组人绘制和显示统计数据的表格报告。这些统计数据由一系列参数收集和组织,其中一个参数是时间戳。
我一直在与一个问题作斗争,我的配置单元查询提取的数据比它应该的多。例如

select *

from table1 pre

where date(pre.`timestamp`) between '2019-11-01' and '2019-11-30'

此查询正在提取mst时间戳为2019-10-31 5:19pm的行,这相当于2019-11-01 12:19am的utc
我花了几个小时研究了解决这个问题的可能方法,我们的服务器配置为mst,我看到了一些参考资料,其中有人建议转换为字符串,而不是拉时间戳,但这将非常不方便,并对我们正在运行的报告造成很多麻烦。在运行查询之前,我还尝试在查询中指定时区

set timezone=MST;

但我已经没有主意了。以前有没有其他人遇到过这样或类似的问题?

55ooxyrt

55ooxyrt1#

谢谢你的帮助。我试着使用时间戳,但有问题。最终,我找到了一种方法,在unix时间中用时间戳来拉取列,减去时间差的秒数,然后在tableau中将它从字符串转换为日期后,用参数来过滤它。

,TO_DATE(from_unixtime(unix_timestamp(pre.`timestamp`) - 25200))

相关问题