postgresql - 在 Postgres 中使用带或不带时区的时间戳?

标签 postgresql timestamp

在 Postgres 中使用带或不带时区的时间戳?

Web 应用程序将在不同的国家/地区使用,因此我将不得不处理不同的时间戳。系统有多个不同对象的数据输入,这些对象有自己的插入/更新日期和时间 (YYYY-MM-DD HH24:MI:SS)。这样主管就可以验证下类后是否有人做了什么。

例子

如果在意大利凌晨 03:00 插入对象,则在巴西可视化的对象也应显示为凌晨 03:00。

作为补充,后端是 PHP、数据库 Postgres,前端是 javascript 和 jQuery。

我应该在数据库中使用什么,带或不带时区的时间戳?和/或协调世界时? 为什么?

最佳答案

如果您对所讨论条目的用例“检查办公时间”,您可以使用没有时区的时间戳并且很高兴,没有转换。

如果您还需要知道操作的确切顺序,您应该使用带时区的时间戳,并在数据中的某处提供用户的时区。

我会使用 timestamptz。请注意,postgresql 允许在 SQL 中与时区相互转换 see here section 9.9.3

关于postgresql - 在 Postgres 中使用带或不带时区的时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45869218/

相关文章:

mysql - 获取基于同一天(时间戳)的n条数据

PostgreSQL 和 BDR : Is BDR truly multi-master, 是 2019 年 1.x 的开源和 EOL 吗?

ruby-on-rails-3 - 对于 Rails 3.2.16 中的 Postgres,序列 "setval"操作与 "nextval"的工作方式不同

javascript - 如何在 javascript 中将日期时间微格式转换为本地时间?

python - 根据每个唯一 ID 的最新时间戳过滤数据框

Python 的 fromtimestamp 在不同的机器上返回不一致的结果

javascript - 将普通日期转换为时间戳 JavaScript

sql - 计算列在 postgres 中更改为特定值的位置

postgresql - 为什么 pg_restore 返回 "options -d/--dbname and -f/--file cannot be used together"?

postgresql - 如何创建 Postgres 列以仅接受文本