LAMBDA current_timestamp в направлении Postgres - PullRequest
0 голосов
/ 01 апреля 2020

Вопрос очень прост: мы выполняем select current_timestamp от lambda до PostgreSQL aurora (для которого установлен часовой пояс America / New_york).

Сценарий:

Когда мы выполняем, выберите Current_timestamp непосредственно на PostgreSQL сервере, он дает время в EST. Но когда мы выполняем ту же самую форму лямбды, она дает часовой пояс UT * 1012.

Я знаю, что часовой пояс лямбда - UT C. Но я запутался здесь, потому что я беру этот кусок кода "select Current_timestamp" из DynamoDB и передаю его в виде строки через лямбду в направлении PostgreSQL. И я могу видеть, что это утверждение является захватывающим и в PostgreSQL. Следует подобрать часовой пояс PostgreSQL. Не уверен, почему он выбирает лямбду.

Необходимо исправить это, и мне нужно выполнить этот оператор из Lambda и получить значение Current_timestamp PostgreSQL (не LAMBDA)

1 Ответ

1 голос
/ 01 апреля 2020

current_timestamp возвращает метку времени, отформатированную для текущего сеанса, которая может быть в UT C. У вас есть несколько вариантов:

  1. SELECT current_timestamp at time zone 'America/New_York'; Это наиболее явный вариант.
  2. Начать каждый сеанс с SET TIME ZONE 'America/New_York';
  3. ALTER USER youruser SET TIME ZONE 'America/New_York'; По умолчанию будет пользователь этого часового пояса, но клиент все равно может переопределить это.
...