我正在开发android应用程序。我的一个应用程序表的列名为"foo_date“。数据类型为文本。我的表中有以下数据
primary key | foo_date | foo_value
--------------------------------------
1 2013-3-1 100
2 2013-3-2 2
3 2013-3-4 100
4 2013-3-3 1000我的要求是获取当前一周的数据(即2013-3-4到2013-3-10)。当我写下面的查询时,我得到了除第3行以外的所有数据
select * from foo_tbl where foo_date between '2013-3-4' and '2013-3-10';如何编写sqlite查询,使其包含当前周的所有数据?
Thansk Chintan
发布于 2013-03-05 02:36:46
您的问题是,您存储日期的格式不容易比较;字符1在4之前,所以2013-3-10比2013-3-4要小。
作为documented,您应该使用ISO日期格式yyyy-mm-dd。在字段大小不变的情况下,您可以使用字符串比较的查询:
SELECT * FROM foo WHERE foo_date BETWEEN '2013-03-04' AND '2013-03-10'或者使用date function来计算星期:
SELECT * FROM foo WHERE strftime('%W', foo_date) = '09'发布于 2013-03-05 02:43:16
首先,将日期存储为标准的sqlite时间字符串格式(即YYYY-MM-DD)。然后,您可以使用以下命令:
select * from foo where strftime('%W', foo_date) == strftime('%W', 'now')选择与now具有相同week number的行。
https://stackoverflow.com/questions/15207986
复制相似问题