2013-03-04 100 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') 

現在具有相同週數選擇行。

相關問題