作为一名postgres初学者,我正在讨论是否定义带时区或不带时区的时间戳字段。
然而,在查看了一些文档之后,我发现了这个声明:
所有时区感知日期和时间都以UTC格式存储在内部。他们 将在TimeZone指定的区域中转换为本地时间 配置参数在显示给客户端之前。
这似乎正是我想要的(utc,转换为客户的时区)
有人能够告诉我为什么有人想要存储没有时区信息的时间戳吗?
例如,我正在查看gitlab CE架构,我发现它们将所有时间戳都定义为没有时区
created_at timestamp without time zone,
所以我对此进行了测试,并在gitlab中更新了一个问题。这个问题在18:55(实际上是英国的19:55)更新了,而丹麦的一位朋友在同一时间(18:55)也看到了,尽管那时是20:55。
当然,将时间显示为时区感知时间戳会更好吗? (即他认为问题更新为@ 20:55,我认为是19:55)
我认为我已经掌握了这个,但是如果像gitlab这样的大项目违背了我认为合适的用途,那么就会开始质疑自己的判断;)