0

我正在使用 SQLite 存储一些数据,并且我知道日期对象不能存储在 SQLite 数据库中,所以我使用的是字符串。

我的问题是我想检查表格的最早日期。因此,如果有 2 张卡,其中一张是 01/04/2013 和 04/05/2013,我想识别 01/04/2013 是较早的日期并返回该行。

到目前为止,我提出了 2 个解决方案:

对数据库的多个查询

我已经能够实现一个成功的解决方案,它将遍历数据库并将日期对象减 1,然后将其用作匹配日期的字符串。问题是数据库可能需要查询 100 次才能找到最早的日期。这样做是不好的做法吗?

遍历结果集

另一种可能性是遍历表中所有抽认卡的结果集。但是,这将涉及 2 个循环,一个循环遍历表中的每一行,这将在一个循环内,将日期减 1。

我觉得这两个都不是很好的解决方案。我想知道是否有人可以帮助我以更有效的方式实现这一目标?

4

2 回答 2

5

如果您以YYYY-MM-DD格式存储日期,则可以使用<>和 ,BETWEEN就像使用实际的 Date 数据类型一样。使用YYYY-MM-DD日期格式,字典顺序与时间顺序相同。

另一个好处是YYYY-MM-DD日期格式与SQLite 日期和时间函数兼容。

于 2013-04-08T18:17:55.957 回答
1

将日期存储为自 1970 年 1 月 1 日以来的天数。

这样,SQL就变成了

Select MIN(days)
于 2013-04-08T18:19:58.760 回答