복붙노트

[SQL] 당신은 프레스토 / 아테나의 AT TIME ZONE의 시간대 매개 변수의 열을 사용할 수 있습니까?

SQL

당신은 프레스토 / 아테나의 AT TIME ZONE의 시간대 매개 변수의 열을 사용할 수 있습니까?

다음은 Athena-에서 수행 할 수있는 작업입니다

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

) x;

다른 SQL 엔진에서 당신은 칼럼 -에 미국 / 시카고를 변경할 수 있습니다

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;

아테나에서는 GET-

아테나에서 x.timezone를 사용하는 것이 가능할까요? 이 벌레처럼 보인다.

해결법

  1. ==============================

    1.그것은 참 엔진의 버그처럼 보인다. 무엇 그러나 흥미로운 것은 기본 함수는 열 매개 변수로 작동한다. 그래서 해결 방법으로 사용할 수 있습니다.

    그것은 참 엔진의 버그처럼 보인다. 무엇 그러나 흥미로운 것은 기본 함수는 열 매개 변수로 작동한다. 그래서 해결 방법으로 사용할 수 있습니다.

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

    2.위의 정답에 대한 몇 가지 추가 컨텍스트를 추가 : AT_TIMEZONE 기능은 프레스토의 문서에 설명되어 있지 않습니다. 누군가가 사용하는 표준 시간대 TZ, 호출되는 그 사실 AT_TIMEZONE 기능 AT 타임 스탬프를합니다. 몇몇 사람이 이미 사용하고 내부 함수가 될 것으로 보인다. 여기에 문제가 논의된다 https://github.com/prestodb/presto/issues/5162

    위의 정답에 대한 몇 가지 추가 컨텍스트를 추가 : AT_TIMEZONE 기능은 프레스토의 문서에 설명되어 있지 않습니다. 누군가가 사용하는 표준 시간대 TZ, 호출되는 그 사실 AT_TIMEZONE 기능 AT 타임 스탬프를합니다. 몇몇 사람이 이미 사용하고 내부 함수가 될 것으로 보인다. 여기에 문제가 논의된다 https://github.com/prestodb/presto/issues/5162

    구문 AT_TIMEZONE 것으로 보인다 (DATE_FIELD, tz_field_or_string)

  3. from https://stackoverflow.com/questions/52446184/can-you-use-a-column-for-the-timezone-parameter-of-at-time-zone-in-presto-athe by cc-by-sa and MIT license