带时区的 HIVE from.unixtime(...)

HIVE from.unixtime(...) with Time Zone

我在 GMT+8 时区的机器上设置了 Hive。因此,from_unixtime(946656000) returns 2000-01-01 00:00:00 而不是 1999-12-31 16:30:00。根据手册,此函数 returns 使用当前系统时区的日期字符串。我该怎么做才能获得带有 UTC 时区的日期字符串,即 1999-12-31 16:30:00?

您可以使用 to_utc_timestamp(T timestamp, STRING timezone)。 这是一个将 IST 中的时间戳转换为 UTC 的示例。

select TO_UTC_TIMESTAMP(from_unixtime(946656000),'IST') c