Postgresql 基于单独的时区列转换UTC-Postgres

Postgresql 基于单独的时区列转换UTC-Postgres,postgresql,datetime,timezone,Postgresql,Datetime,Timezone,我有一张桌子,上面有: 源日期列 源时间戳(30分钟间隔,一个字符串) datetime UTC timestamptz列 “报告”时区(时区最终应如何显示) 2018-05-11 22:30 2018-05-10 03:30:00美国/纽约 是否有一种有效的方法将datetime_utc列转换为查询或视图中同一行中指示的时区?我可以使用Python实现这一点,但我想知道如何直接在查询中实现这一点 这似乎是可行的-我可以引用列名,它会根据在该行中找到的值准确地转换列名 (interval_

我有一张桌子,上面有:

  • 源日期列
  • 源时间戳(30分钟间隔,一个字符串)
  • datetime UTC timestamptz列
  • “报告”时区(时区最终应如何显示)

    2018-05-11 22:30 2018-05-10 03:30:00美国/纽约

是否有一种有效的方法将datetime_utc列转换为查询或视图中同一行中指示的时区?我可以使用Python实现这一点,但我想知道如何直接在查询中实现这一点

这似乎是可行的-我可以引用列名,它会根据在该行中找到的值准确地转换列名

 (interval_timestamp_utc :: TIMESTAMPTZ AT TIME ZONE time_zone) :: DATE AS "Reporting Date",

 to_char((interval_timestamp_utc :: TIMESTAMPTZ AT TIME ZONE time_zone), 'HH24:MI') AS "Reporting Interval",

我认为时区的
结构应该是您所寻找的。在您的情况下,
SELECT TIMESTAMP WITH TIME ZONE datetime\u utc AT TIME ZONE TIME\u ZONE
应该为您提供呈现的时间戳,而不带该特定时区的偏移量


有关更多详细信息,请参见。

选择“2018-05-10 03:30:00”::时区的时间戳“美国/纽约”?另请查看
pg_catalog.pg_timezone_abbrevs
pg_catalog.pg_timezone_names
表格。不过,每一行都有不同的时区-我没有选择特定的行。我正在查询一个完整的日历日,该日历日大约有100-200万行,我正在将源时区转换为用于可视化的“显示”时区。嗨,我只是想确保如果每行都有不同的时区,这仍然有效。现在大约有20多个独特的条目。这似乎有效,而且比我在声明中输入20多个条目时的情况要短得多,谢谢!
 (interval_timestamp_utc :: TIMESTAMPTZ AT TIME ZONE time_zone) :: DATE AS "Reporting Date",

 to_char((interval_timestamp_utc :: TIMESTAMPTZ AT TIME ZONE time_zone), 'HH24:MI') AS "Reporting Interval",