sql - 在 PostgreSQL 数据库中存储时区感知的理想方法是什么?

标签 sql postgresql datetime timezone

我想在我的 SQL 数据库中存储日期时间字符串。其中一些可能是时区感知的。我有 3 种存储方式:

  1. 将它们存储为不带时区的字符串,例如'1995-01-13 12:41:04.231132',并存储时区偏移量'+0000' 在单独的列中。

  2. 将它们存储为不带时区的字符串,例如'1995-01-13 12:41:04.231132',并存储时区名称'Africa/Cairo' 在单独的列中。

  3. 将整个内容存储为字符串:'1995-01-13 12:41:04.231132+0000',并附加偏移量。

执行此操作的理想方法是什么?

注意:我使用的是 PostgreSQL 数据库。

额外的细节:我实际上将这些日期时间存储在我的 PostgreSQL 数据库的一个 JSONB 列中,因此在查询和排序期间,我需要使用适当的数据类型来转换它们。

最佳答案

以上都不是,使用timestamp with time zone 数据类型。它可以将时区信息作为偏移量、时区名称或缩写来处理。

关于sql - 在 PostgreSQL 数据库中存储时区感知的理想方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53964230/

相关文章:

mysql - SQL查询获取特定用户的所有数据

C# 检查 SQL 查询是否仅用于创建 View

postgresql - 从 AWS Aurora 迁移到本地 Postgres 9.6 数据库

mysql - SQL: N-N Select * from table1 并检测是否与特定用户 ID 的另一个存在关系

java - 从 Java 到 SQL 的邻接矩阵

sql-server - SSIS 将时间戳列派生为日期和时间列

mysql - 使用 perl 和 mysql 日期格式提取星期几

Scala Unix 时间戳

mysql - 查找在特定上下文中一起出现的所有元素

sql - 在 Postgres 中创建触发器