【发布时间】:2017-05-09 09:19:56
【问题描述】:
我有一个 postgresql 数据库,我需要选择一种数据类型。
用 @CreatedDate @LastModifiedDate 注释的列的 postgresql 数据类型应该是什么?
【问题讨论】:
标签: spring postgresql annotations spring-data
我有一个 postgresql 数据库,我需要选择一种数据类型。
用 @CreatedDate @LastModifiedDate 注释的列的 postgresql 数据类型应该是什么?
【问题讨论】:
标签: spring postgresql annotations spring-data
使用TIMESTAMPTZ 来避免时区处理的噩梦。
不要使用TIMESTAMP。如果你这样做,你的所有数据都会有一个与之关联的隐式时区。除非您错误地使用不同的时区设置运行客户端和服务器,或者更糟糕的是,在具有季节性变化的时区中运行其中一个,否则一切都会正常工作。
您不需要在客户端上做任何额外的工作 - postgres jdbc 驱动程序总是发送附加的时间戳时区信息;如果类型是TIMESTAMP,它只会被服务器忽略。也没有额外的存储空间 - 两种类型都存储为从 2000-01-01 00:00:00Z 开始的偏移量。
【讨论】:
TIMESTAMP 需要仔细管理客户端和服务器时区。我在回答中添加了一些解释。