【发布时间】:2019-05-26 14:46:21
【问题描述】:
我想在我的 SQL 数据库中存储日期时间字符串。其中一些可能是时区感知的。我有 3 种存储方式:
将它们存储为不带时区的字符串,例如
'1995-01-13 12:41:04.231132',并将时区偏移量'+0000'存储在单独的列中。将它们存储为不带时区的字符串,例如
'1995-01-13 12:41:04.231132',并将时区名称'Africa/Cairo'存储在单独的列中。将整个内容存储为字符串:
'1995-01-13 12:41:04.231132+0000',并附加偏移量。
理想的方法是什么?
注意:我使用的是 PostgreSQL 数据库。
额外细节:事实上,我将这些日期时间存储在我的 PostgreSQL 数据库中的 JSONB 列中,因此在查询和排序期间,我需要使用适当的数据类型转换它们。
【问题讨论】:
-
这真的取决于你的需要。这些是过去事件的时间戳吗?或者您正在安排未来或经常性的活动?你有各种不同的时区吗?还是来自一个时区的所有数据?知道等效的 UTC 就足够了,还是需要原始本地时间?另请参阅 the timezone tag wiki 和 best practices 列表。
标签: sql postgresql datetime timezone