2013-03-04 63 views
0

我正在开发android应用程序。我的一个应用程序表中有“foo_date”作为列名。数据类型是TEXT。我有以下数据在我的表如何在SQLite数据库中获取星期日期

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

+0

在数据库中存储周数也会有很大的帮助。 – 2013-03-04 18:05:31

+0

您可以发布您目前正在使用的查询吗? – 2013-03-04 18:06:33

+0

我在下面的查询尝试,但它不会给我我期待的结果。 – Chintan 2013-03-04 18:17:56

回答

0

你的问题是,你已经存储在一个格式中的日期是不容易比较;字符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' 
+0

非常感谢您的帮助! :)我将格式更改为“yyyy-mm-dd”,现在正在工作。 – Chintan 2013-03-04 19:08:41

0

首先,存放日期为标准的sqlite时间字符串格式(即YYYY-MM-DD)。 然后,您可以使用此:

select * from foo where strftime('%W', foo_date) == strftime('%W', 'now') 

现在具有相同周数选择行。

相关问题