gpt4 book ai didi

sqlite - SQLite3中的日期,带有转折(日期不准确)

转载 作者:行者123 更新时间:2023-12-03 17:58:58 25 4
gpt4 key购买 nike

我正在研究以SQLite3格式存储其数据的家谱软件。一切正常,除了一个小细节。并非在所有情况下都能提供确切日期的出生或死亡日期(等)的准确性。所以我有以下准确性:


准确(YYYY-MM-DD)
月(YYYY-MM)
年(YYYY)
年(YYYY +/- 5)
年(YYYY +/- 10)
年(YYYY +/- 50)
十年
世纪


现在,假设我将所有内容都存储在单个列中,那么最终会遇到问题。由于SQLite3具有Julian Day function,所以我一直在考虑在REAL朱利安日的小数部分编码精度(无论如何我都不需要小时)。很好,但是它使SELECT的工作方式复杂化,实际上,这意味着我必须卸载到SQLite3的东西必须在应用程序代码中实现。

什么是合理的方法来存储不正确的日期并能够快速查询它们?

注意:如果对任何回答者都重要,则使用的语言是Python,但我一般来说是这样问的。

最佳答案

在查询那些日期值时,最常见的操作可能是检查某个日期是否可能与另一个日期匹配。
为此,您始终需要时间间隔的开始和结束,因此将这两个值存储在数据库中是有意义的。
(将它们称为Start / EndMin / MaxEarliest / Latest或其他有意义的方法。)

例如,要查找一个世纪前出生的人:

... WHERE '1913-04-16' BETWEEN BirthDateMin AND BirthDateMax


不等式比较可以使用区间边界之一进行。
例如,查找可能已经出生一个多世纪的人:

... WHERE BirthDateMin < '1913-04-16'

关于sqlite - SQLite3中的日期,带有转折(日期不准确),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16026517/

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