我正在开发一个SQLite数据库,其中包含一个以yyyy-MM-dd HH:mm:ss格式存储值的列。现在我需要创建一个过滤器来选择带有filter的行作为这个datetime列。 查询:
Select * from tbl_locations where datetime >= '2013-09-11 00:00:00' and datetime <='2013-09-13 00:00:00'
上面的查询返回null set,尽管在这个插槽中包含了值(我使用没有过滤器的select语句进行了验证。)
有任何建议我如何获得所需的数据集?
答案 0 :(得分:1)
也许SQLite文档中的摘录可以帮助您:
1。2日期和时间数据类型
SQLite没有预留用于存储日期和/或时间的存储类。相反,SQLite的内置日期和时间函数能够将日期和时间存储为TEXT,REAL或INTEGER值:
应用程序可以选择以任何格式存储日期和时间,并使用内置的日期和时间函数在格式之间自由转换。
中记录了您可以在SQL中用于构建查询的日期和时间函数。答案 1 :(得分:0)
好的,我在MySQL中对此进行了测试,但希望它能够正常运行。我有一个使用timestamps
的表,并将列更改为text
类型。然后我尝试了以下SQL查询并得到了我通常会得到的相同结果(除了尾随小数)
SELECT timestamp(stock_quote_timestamp)
FROM stock.stock_quote
WHERE stock_quote_timestamp < timestamp('2013-10-07 11:05:30')#@high_date
AND stock_quote_timestamp > timestamp('2013-10-03 14:09:03');#@low_date;
基本上,只需将text
语句转换为timestamps
即可正确比较。哦,你还需要说明你还有什么SELECT
,或者你可以做一个复合选择语句:SELECT *, timestamp(stock_quote_timestamp)...