Преобразовать текущую временную метку UTC в CET

#presto #amazon-athena #trino

#presto #amazon-athena #trino

Вопрос:

Я пытаюсь найти способ преобразовать current_timestamp в другой часовой пояс.

Функция current_timestamp в Simba Athena по умолчанию выдает мне временную метку в формате UTC. Я хотел бы получить такую же временную метку в часовом поясе CET. Пожалуйста, обратите внимание, что я хотел бы автоматизировать это преобразование в моем запросе.

Я попробовал функцию convert_timezone (‘CET’, current_timestamp), но она не распознается в AWS Athena

В более простых работах я ищу замену для функции SQL Server GETUTCDATE() в Presto, за исключением того, что я хотел бы получить временную метку CET. Есть предложения?

Ответ №1:

current_timestamp в Trino (ранее известном как Presto SQL) возвращает timestamp with time zone значение в терминах текущего часового пояса сеанса. Например, если клиент находится в America/Los_Angeles часовом поясе:

 trino> select current_timestamp;
                    _col0
---------------------------------------------
 2020-08-26 09:14:43.259 America/Los_Angeles
(1 row)
  

Вы можете проверить, каков текущий часовой пояс для сеанса с помощью current_timezone() :

 trino> select current_timezone();
        _col0
---------------------
 America/Los_Angeles
(1 row)
  

Чтобы преобразовать a timestamp with time zone в другой часовой пояс, вы можете использовать AT TIME ZONE синтаксис:

 trino> select current_timestamp at time zone 'America/New_York';
                  _col0
------------------------------------------
 2020-08-26 12:18:37.901 America/New_York
(1 row)