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。您有几个选择:
SELECT current_timestamp at time zone 'America/New_York';
这是最露骨的
- 每个会话从
SET TIME ZONE 'America/New_York';
开始
ALTER USER youruser SET TIME ZONE 'America/New_York';
这将默认用户使用这个时区,但客户端仍然可以覆盖它。
问题很简单: 我们正在从 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。您有几个选择:
SELECT current_timestamp at time zone 'America/New_York';
这是最露骨的- 每个会话从
SET TIME ZONE 'America/New_York';
开始
ALTER USER youruser SET TIME ZONE 'America/New_York';
这将默认用户使用这个时区,但客户端仍然可以覆盖它。