我在Postgres的PubMed上存储期刊论文的数据,我想存储论文的出版日期 . 但是,有时日期是just a year(参见 PubDate
字段),有时是一个月和一年,有时是一天,一个月和一年 .
将这些数据存储在我的数据库中的有效方法是什么?
如果我使用Postgres日期字段,我显然也需要指定日期和月份,但在某些情况下我需要发明它们,我不喜欢丢失有关日期精度的信息 .
为了我的目的,我想我只需要一年,但我不知道这是为了所有可能的未来目的 .
也许我应该只有 day
, month
和 year
的文本字段,然后如果我需要它,我总能在将来将它们转换为日期字段?
2 回答
我将它存储为
date
并存储精度 .例如:
然后你可以像这样查询表:
忽略
pub_date
中的任何“随机”日期和月份值 .你可以有一个Date字段并有另一个字段 - 让我们说'dateflag'类型为整数 . 您的使用日期为2,使用日期和月份为2,使用年份为3 . 这样,在检索数据时,您将知道该怎么做 . 当然对于选择2和3,您需要在插入时插入除年份之外的虚拟日期/月份 .
你对3个领域的想法也是完全有效的 - 但它需要进行大量的检查以确保你保持日期的神圣性(就像有一天那样 - 那么月份必须在那里,规则是天和月的 Value 等) .