PostgreSQL - 如何创建一个值保存为PST时间戳的表?

时间:2018-04-18 12:03:18

标签: postgresql postgresql-9.3

看一下文档: https://www.postgresql.org/docs/9.3/static/datatype-datetime.html

表8-9显示timestamp [ (p) ] with time zone,但是方括号和普通括号让我失望,没有示例说明如何实现它。

e.g。如果我有以下内容,我如何使some_time列保持PST时间戳而不是UTC?

CREATE TABLE "mytable" (
  id SERIAL PRIMARY KEY,
  some_time TIMESTAMP
); 

1 个答案:

答案 0 :(得分:1)

您无法声明具有指定时区类型的时区的列。 文档中的 p 表示精确度

  

时间,时间戳和间隔接受可选的精度值p

关于 p 的值:

  

对于时间类型,当使用八字节整数存储时,p的允许范围是0到6,或者当使用浮点存储时,p的允许范围是0到10.

我认为您要使用timestamp without time zone列,然后使用AT TIME ZONE将其转换为所需的时区:

SELECT some_time AT TIME ZONE 'PST', some_time AT TIME ZONE 'UTC+2' FROM mytable;

fiddle