如何在PostgreSQL中表示具有不确定性的日期

如何在PostgreSQL中表示具有不确定性的日期,第1张

概述PostgreSQL提供了日期格式数据类型来存储日期.然而,这些日期的问题是 – 据我所知 – 他们不能提出不确定性的原因. 有时人们不知道某事的完整日期,但知道它发生在1995年1月或“1999年或2000年”(日期2).可能有几个原因: >人们不记得确切的日期; >确切的日期基本上是未知的:例如,有一天某人最后一次见到,几天后就发现死亡;要么 >我们处理未来事件,因此仍有可能出现问题. 我想知 Postgresql提供了日期格式数据类型来存储日期.然而,这些日期的问题是 – 据我所知 – 他们不能提出不确定性的原因.

有时人们不知道某事的完整日期,但知道它发生在1995年1月或“1999年或2000年”(日期2).可能有几个原因:

>人们不记得确切的日期;
>确切的日期基本上是未知的:例如,有一天某人最后一次见到,几天后就发现死亡;要么
>我们处理未来事件,因此仍有可能出现问题.

我想知道是否有一种数据类型来存储这样的“日期”以及它们是如何传递的.它将导致某些 *** 作的e值逻辑,例如date2< 20001/01/01应该是真的,date2< 2000/01/01是可能的,date2< 1998/01/01应该是假的. 如果没有这样的数据类型,那么在自己构建这样的“表”有什么好的做法?

有几种不同的方法来处理模糊日期.在Postgresql中,您可以使用

>一对日期列(earlIEst_possible_date,latest_possible_date),
>日期列和精确列(‘2012-01-01′,’年’),或
> a range data type(日期范围),或
> a varchar(‘2013-01-2?’,’2013 – ?? – 05′),或
>具有任何这些数据类型的另一个或多个表.

范围数据类型是Postgresql的最新版本所特有的.您可以在任何sql dbms中使用其他人.

您需要的那种模糊性取决于应用程序.查询模糊日期的方式取决于您选择的数据类型或结构.您需要牢牢掌握需要存储的模糊性以及用户需要回答的问题类型.您需要进行测试以确保您的数据库可以回答他们的问题.

例如,在法律制度中,日期可能会被记住很糟糕或污损.有人可能会说“这是2014年1月的某个星期四.我知道这是星期四,因为它是垃圾回收日”,或“这是去年6月或7月的第一周”.要记录那种模糊性,你需要另一张桌子.

或者邮戳可能会被破坏,因此您只能阅读“2014年14月”.你知道它在14号邮戳,但你不知道哪个月.同样,你需要另一张桌子.

除非你跳过一些箍,否则一些(全部?)这些都不会给你三值逻辑. (“可能”不是有效的布尔值.)

总结

以上是内存溢出为你收集整理的如何在PostgreSQL中表示具有不确定性的日期全部内容,希望文章能够帮你解决如何在PostgreSQL中表示具有不确定性的日期所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1181164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存