如何在 Postgres 中更改 table 以显示带有时区缩写的时间戳 (2004-10-19 10:23:54 EST)

How to alter table in Postgres to show Timestamp with Time Zone abbreviation (2004-10-19 10:23:54 EST)

我想将我的 table 行从 2011-06-30 05:59:59+00 格式更改为 2011-06-30 05:59:59 CDT 格式

正如 Tim 所说,postgres 不存储 TZ 信息。您不能以这种方式更改列。除非你创建函数或视图或其他东西(无论如何都不会改变 table )。你做什么,你 change timezone 看看你需要什么:

timezone (string)

Sets the time zone for displaying and interpreting time stamps. If not explicitly set, the server initializes this variable to the time zone specified by its system environment. See Section 8.5.3 for more information.

并使用 formatting 显示 TZ 信息...像这里一样:

b=# select now();
             now
-----------------------------
 2016-12-07 15:13:35.1369+00
(1 row)

b=# set timezone = EST;
SET

b=# select to_char(now(),'YYYY-MM-DD HH24:MI:SS TZ');
         to_char
-------------------------
 2016-12-07 10:13:55 EST
(1 row)