【发布时间】:2017-12-16 16:34:01
【问题描述】:
我正在使用 PostgreSQL 10,我在 documentation 中看到 date 类型的最小范围是公元前 4713 年。有没有办法让分钟数更低,比如 5000BC ?还是我应该提出自己的解决方案?
【问题讨论】:
-
您可能正在寻找存储狩猎采集客户详细信息!
-
是的 - 你必须有自己的解决方案 - 就像在 int 上保存日期并自己执行所有数学一样丑陋。但真的 - 你想存储什么确切的日期?..
-
@VaoTsun 它是关于一个文化/历史项目,因此必须定义古代时代和日期。我寻找精确的年份。只保存古代年份就可以了,就像公元前 5000 年一样,但这也需要
date类型。这就是为什么我不能停下来到4713。如果在公元前5000年发生了一场战斗怎么办?想象一下历史学家试图插入 5000BC 并得到一个错误! -
@KaushikNayak 我不明白你说什么,对不起。改写吧?谢谢
-
我不擅长历史,当然我们可能知道自 16 世纪以来更精确的日期。我认为您可以做一些丑陋的黑客攻击,例如将 5000 BC 存储为 1000 BC 和 -4K 在默认为 null 的其他字段中,但这样的轮子当然需要知道最早可能的日期和某些函数或
case when语句,或+ interval -4k构造.好吧 - 不 - 一旦我尝试提出这些想法 - 我看到这里的任何解决方案都不可靠......也许你最好定义严格的规则,日期保留到公元前 4713 年,更早的日期保留在文本中,不要参与约会操作
标签: postgresql date datetime date-range