您可以在Presto / Athena中的AT TIME ZONE的时区参数中使用一列吗?

mic*_*cah 1 sql amazon-web-services presto amazon-athena

这是您可以在Athena中执行的操作-

SELECT date_utc AT TIME ZONE 'America/Chicago'
FROM
(
  SELECT TIMESTAMP '2018-09-09 12:00:00' as date_utc

) x;
Run Code Online (Sandbox Code Playgroud)

在其他SQL引擎中,您可以更改America/Chicago为列-

SELECT date_utc AT TIME ZONE x.timezone
FROM
(
  SELECT
    TIMESTAMP '2018-09-09 12:00:00' as date_utc,
    'America/Chicago' as timezone

) x;
Run Code Online (Sandbox Code Playgroud)

在雅典娜,您得到-

第1:30行:输入“时区x”没有可行的选择

x.timezone雅典娜应该可以使用吗?这似乎是一个错误。

jen*_*ter 7

确实看起来像引擎中的错误。但是,有趣的是,基础函数与列参数一起使用。因此,您可以将其用作解决方法。

SELECT at_timezone(date_utc,x.timezone)
FROM
(
  SELECT
    TIMESTAMP '2018-09-09 12:00:00' as date_utc,
    'America/Chicago' as timezone

) x;
Run Code Online (Sandbox Code Playgroud)