【问题标题】:Postgresql data type for column annotated with `@CreatedDate` `@LastModifiedDate`使用 `@CreatedDate` `@LastModifiedDate` 注释的列的 Postgresql 数据类型
【发布时间】:2017-05-09 09:19:56
【问题描述】:

我有一个 postgresql 数据库,我需要选择一种数据类型。

@CreatedDate @LastModifiedDate 注释的列的 postgresql 数据类型应该是什么?

【问题讨论】:

    标签: spring postgresql annotations spring-data


    【解决方案1】:

    使用TIMESTAMPTZ 来避免时区处理的噩梦。

    不要使用TIMESTAMP。如果你这样做,你的所有数据都会有一个与之关联的隐式时区。除非您错误地使用不同的时区设置运行客户端和服务器,或者更糟糕的是,在具有季节性变化的时区中运行其中一个,否则一切都会正常工作。

    您不需要在客户端上做任何额外的工作 - postgres jdbc 驱动程序总是发送附加的时间戳时区信息;如果类型是TIMESTAMP,它只会被服务器忽略。也没有额外的存储空间 - 两种类型都存储为从 2000-01-01 00:00:00Z 开始的偏移量。

    【讨论】:

    • 时间戳怎么样?那么噩梦就更少了?
    • TIMESTAMP 需要仔细管理客户端和服务器时区。我在回答中添加了一些解释。
    猜你喜欢
    • 2019-10-25
    • 2021-01-15
    • 2017-12-14
    • 2011-01-12
    • 2021-08-18
    • 2011-06-26
    • 1970-01-01
    • 2013-09-17
    • 2018-11-29
    相关资源
    最近更新 更多