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

时间:2018-12-28 20:59:03

标签: 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列中,因此在查询和排序期间,我需要使用适当的数据类型来强制转换这些日期时间。

1 个答案:

答案 0 :(得分:3)

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