Presto: у меня есть столбец в той же таблице, что и данные, который указывает часовой пояс, на который я хочу сместить свои даты - PullRequest
0 голосов
/ 14 октября 2019

У меня есть таблица со следующими столбцами:

Store  timezone              date_entry        date_exit
ABC    America/Los Angeles   1/1/2019 16:17    1/4/2019 16:17 
DEF    Central Standard Time 2/1/2019 13:12    2/15/2019 09:45

Все date_entry и date_exit указаны в UTC, и я хочу преобразовать его в желаемый часовой пояс, указанный в столбце часового пояса. Это всего лишь пример, у меня есть данные для нескольких часовых поясов, и жесткое кодирование очень громоздко и отнимает много времени. Есть ли способ в Presto, где я могу ввести эту строку из столбца часового пояса, чтобы сместить время в желаемый часовой пояс?

В настоящее время я делаю это:

date_entry AT TIME ZONE 'America/Los_Angeles' AS date_entry

С помощью операторов CASE WHEN,Есть ли способ использовать столбец часовых поясов, чтобы сделать это без случая, когда в Presto?

Я изучил эти вопросы и попробовал возможные решения, но у меня это не сработало:

1) Можно ли использовать столбец для параметра часового пояса AT TIME ZONE в Presto / Athena? 2) Presto SQL: изменение часовых поясов с использованием строки часового пояса, поступающей в результате запроса, не работает

1 Ответ

1 голос
/ 15 октября 2019

Presto 320 добавляет with_timezone (для значений timestamp) at_timezone (для значений timestamp with time zone) именно для этой цели.

Этоэквивалентно (гипотетическому) AT TIME ZONE x, где x не является константой.

...