0

我有一个 SQLite 数据库,我正在提取一组特定日期的数据(比如说 01-01-2011 到 01-01-2011)。将此查询实现到 SQL 中的最佳方法是什么。理想情况下,我希望运行以下行:

SELECT * FROM database where start_date < date_stamp and end_date > date_stamp

当我将日期存储为字符串时,这显然不起作用。

我的解决方案(我认为这很混乱,我希望有另一个解决方案)是将日期转换为以下格式的整数:YYYYMMDD 这使得上述行能够运行(理论上)。有没有更好的方法?

使用 python sqlite3

如果我使用的是 SQL 而不是 SQLite,答案会有什么不同吗

4

2 回答 2

0

对于 SQLlite,它是最好的方法,因为与 int 相比,它比字符串或任何日期和时间操作快得多

于 2013-10-25T03:48:55.607 回答
0

您应该将日期存储在一种受支持的日期/时间数据类型中,然后比较将无需转换即可工作,并且您将能够在它们上使用内置的日期/时间函数。(使用字符串还是数字与速度无关;数据库性能主要取决于所需的 I/O 量。)

在其他具有内置日期数据类型的 SQL 数据库中,您可以使用它。(但是,这通常是不可移植的。)

于 2013-10-25T08:04:06.410 回答