使用“ AT TIME ZONE”将“ timestamptz”格式转换为“ timestamp”时,如何在MIDNIGHT显示时间

时间:2019-01-15 21:21:43

标签: postgresql

我正在使用以下查询将timestamptz格式的列转换为timestamp

    SELECT table.recording_datetime AT TIME ZONE 'America/New_York' FROM table;

除了所有不显示时间的午夜时间以外,所有值均按预期方式工作。例如,将值2018-12-13 00:00:00.0000000 -05:00转换为2018-12-13而不是2018-12-13 00:00:00,就像在其他非午夜时间一样。还有任何线索可以在午夜获得小时,分钟和秒吗?

1 个答案:

答案 0 :(得分:0)

如果要保持一致的显示,则需要字符串数据类型而不是时间戳数据类型。为此,您可以使用文档中所述的to_char方法。 https://www.postgresql.org/docs/9.1/functions-formatting.html

相反,您的数据库客户端中可能有一个关于时间戳显示方式的选项。

类似:

SELECT to_char( table.recording_datetime AT TIME ZONE 'America/New_York' , 'YYYY-MM-DD HH24:MI:SS') FROM table;

这也使您可以决定是否包含毫秒,微秒等。