【问题标题】:Convert To Another Timezone in Postgresql在 Postgresql 中转换为另一个时区
【发布时间】:2020-08-16 00:04:59
【问题描述】:

如何使用 postgresql 将以下代码转换为另一个时区?

SELECT date_trunc('month', CURRENT_DATE);

上面的代码返回这个输出: '2020-05-01 00:00:00'

我想从默认时区转换为“PST”。

【问题讨论】:

  • 从哪个时区到哪个时区?请提供示例数据和预期结果以阐明您的要求。
  • 嗨,我想从默认时区转换为“PST”。
  • 好的。那么这个值的预期结果是什么?

标签: sql database postgresql date datetime


【解决方案1】:

以下内容并非针对此问题。
虽然 Postgres 支持时区缩写(pst,...),但请谨慎使用它们。他们建立了与 UTC 的固定偏移量。该偏移量始终保持不变;他们不知道夏令时的变化。在大多数情况下,最好使用完整的时区名称,即“America/Los_Angeles”。来自 Postgres Documentation

时区缩写,例如 PST。这样的规范仅仅是 与完整时区相比,定义了与 UTC 的特定偏移量 可以暗示一组夏令时转换日期规则的名称 也是。公认的缩写列于 pg_timezone_abbrevs 视图(参见第 51.91 节)。您无法设置 配置参数 TimeZone 或 log_timezone 到一个时区 缩写,但您可以在日期/时间输入值中使用缩写 并使用 AT TIME ZONE 运算符。

【讨论】:

    【解决方案2】:

    这是你要找的吗?

    select date_trunc('month', current_date) at time zone 'utc' at time zone 'pst'
    

    产量:

    2020-05-01 08:00:00+01
    

    【讨论】:

      猜你喜欢
      • 2013-12-03
      • 1970-01-01
      • 2012-10-27
      • 1970-01-01
      • 2012-06-27
      • 1970-01-01
      • 1970-01-01
      • 2020-11-24
      • 2012-04-22
      相关资源
      最近更新 更多