LAMBDA current_timestamp 对 Postgres

LAMBDA current_timestamp towards Postgres

问题很简单: 我们正在从 lambda 执行 select current_timestamp 到 PostgreSQL aurora(设置为 america/New_york 时区)。

场景:

当我们在PostgreSQL Server中直接执行select Current_timestamp时,给出的是EST时间。 但是当我们执行相同形式的 Lambda 时,它给出的是 UTC 时区。

我知道 Lambda 时区是 UTC。 但我在这里很困惑,因为我从 dynamoDB 中获取这段代码 "select Current_timestamp" 并将其作为字符串通过 lambda 传递给 PostgreSQL。我可以看到这个声明在 PostgreSQL 中也很令人兴奋。它应该选择 PostgreSQL 的时区。不确定为什么选择 Lambda。

需要解决此问题,我需要从 Lambda 执行此语句并获取 PostgreSQL 的 Current_timestamp(非 LAMBDA)

current_timestamp returns 为当前会话格式化的时间戳,可能是 UTC。您有几个选择:

  1. SELECT current_timestamp at time zone 'America/New_York';这是最露骨的
  2. 每个会话从 SET TIME ZONE 'America/New_York';
  3. 开始
  4. ALTER USER youruser SET TIME ZONE 'America/New_York'; 这将默认用户使用这个时区,但客户端仍然可以覆盖它。