gpt4 book ai didi

postgresql - 在 postgresql 数组中存储日期

转载 作者:行者123 更新时间:2023-11-29 12:26:25 26 4
gpt4 key购买 nike

我有一个大型的以人为本的历史数据集,其中包括以 YYYY、YYYY-MM 或 YYYY-MM-DD 格式记录的出生日期。我一直在想我应该为这个字段使用 date[] 数组,因为数据集经常列出两个或多个出生日期。

PG docs说支持 ISO 8601 日期,并且 ISO 8601 ( wikipedia link ) 适应精度降低,但 PG 不允许我添加精度降低的日期(例如 1882-11 表示 1882 年 11 月)。

那么,处理需要包含多个出生日期(可能类似于 1883、1882-11 或 1882-12-12)的记录的最佳方法是什么?

最佳答案

假设你有一张 table person with

+----------------+---------+----------+--------------------------------+
| person_id | fname | lname | bdate[] |
+----------------+---------+----------+--------------------------------+
| 1 | 'Jhon' | 'Smith' | {1883, 1882-11, or 1882-12-12} |
+----------------+---------+----------+--------------------------------+

你不希望这样,因为那样很难搜索一个日期或更新数组。

相反,您需要一个附加表 birthdays

+-------------+------+------------+
| birthday_id | type | bdate |
+-------------+------+------------+
| 1 | 1 | 1883-01-01 |
| 1 | 2 | 1882-11-01 |
| 1 | 3 | 1882-12-12 |
+-------------+------+------------+

这样,即使日期保存为 1883-01-01,您也知道将是 type = 11883

关于postgresql - 在 postgresql 数组中存储日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34074857/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com