Я подключаюсь к AWS Athena через Mode Analytics Platform и запрашиваю таблицу, используя механизм запросов (основанный на Presto 0.172). Эта таблица public.zones
содержит информацию о часовом поясе, хранящуюся в столбце с именем time_zone
в некоторых регионах, которые меня интересуют, и хранится как varchar
.
.
Например, если я наберу:
SELECT time_zone
FROM public.zones
LIMIT 4;
Я получаю (как и ожидалось):
time_zone
----------
US/Pacific
US/Eastern
US/Eastern
US/Eastern
Я могу запустить этот тестовый запрос:
SELECT
timestamp '2017-06-01 12:34:56.789' AT TIME ZONE 'US/Eastern' AS time_eastern,
time_zone
FROM public.zones
LIMIT 4;
и я получаю (как и ожидалось)
time_eastern time_zone
---------------------------------- ----------
2017-06-01 08:34:56.789 US/Eastern US/Pacific
2017-06-01 08:34:56.789 US/Eastern US/Eastern
2017-06-01 08:34:56.789 US/Eastern US/Eastern
2017-06-01 08:34:56.789 US/Eastern US/Eastern
Теперь я хочу представить одну и ту же строку времени '2017-06-01 12:34:56.789'
в разных часовых поясах, которые я запрашиваю из таблицы зон. Я ожидал выполнения следующего запроса. (Он работает на PostgreSQL).
SELECT
timestamp '2017-06-01 12:34:56.789' AT TIME ZONE time_zone AS time_custom,
time_zone
FROM public.zones
LIMIT 4;
Я получаю следующую ошибку:
[Simba][AthenaJDBC](100071) An error has been thrown from the AWS Athena client.
line 2:52: no viable alternative at input 'TIME ZONE time_zone'
В чем причина того, что это не работает в Presto SQL / AWS Athena Query Engine?
Может кто-нибудь предложить какие-нибудь обходные пути или какова моя синтаксическая ошибка, если таковая имеется?