2012-07-24 35 views
2

在我的數據庫中,我有一個表date作爲列之一,它存儲用戶在我的表中添加一些數據的日期。在Android中從數據庫檢索明智的數據

現在我想單獨檢索當月的數據。我通過谷歌搜索,但沒有得到適當的答案。

我的表創建代碼:

"create table incomexpense(
    _id integer primary key autoincrement, 
    "+"price text not null,description text not null, 
    "+"quantity text not null, 
    "+"total text not null, 
    "+"category text not null, 
    "+"recurrence text not null, 
    "+"date text not null, 
    "+"groups text not null, 
    "+" recurrenceid text not null);"; 

任何人都可以請幫助如何獲得第7天的日期格式的當前日期。

+0

共享數據庫表結構。 – 2012-07-24 11:49:41

+0

日期格式是什麼?如果不知道,幾乎不可能提出任何建議。 – Barak 2012-07-24 12:12:12

+0

Barak..date格式是「dd/MM/yyyy」..我也有1個答案:select table_name from table_name where strftime('%Y-%m',column_name)='2011-05';給日期'2011-05'靜態值。但我想是它應該自動加載當前的年和月.. – 2012-07-24 12:14:26

回答

0

Android的數據類型沒有bulit作爲「日期」。您可以將其存儲爲字符串,並在使用時進行適當的解析。 因此,使用此選項,除非您回顧並解析日期,否則您將無法在當月查找記錄。

其他選項是您將它存儲爲數字 - Unix時間,自1970-01-01 00:00:00 UTC以來的秒數。

通過where子句中的一些計算,您可以找出當前月份的記錄。

7

如果您想爲「自動」加載當前年/月,使用SQLite的strftime功能與'now'修改& '%Y-%m'格式掩碼。現在

select strftime('%Y-%m', 'now'); 

,來到你的問題:

現在我想找回單獨當月的數據。

好吧,這裏來了一團糟。你can't store the date as a datetime type,而是以格式存儲SQLite無法使用日期函數解析。所以你必須把它轉換成SQLite can understand的格式。

你可以通過使用通常的substr功能

substr(exp_date, 7) || '-' || substr(exp_date, 4,2) || '-' || substr(exp_date, 1,2) 

因此,這將變相dd/mm/yyyyYYYY-mm-dd格式。

,所以該完整的查詢將是:

SELECT * 
FROM incomexpense 
WHERE Strftime('%Y-%m', 'now') = Strftime('%Y-%m', Substr(exp_date, 7) 
                || '-' 
                || Substr(exp_date, 4, 2) 
                || '-' 
                || Substr(exp_date, 1, 2)) 

看看它如何工作over here

+3

+1爲例與很好的解釋。 – 2012-07-25 04:28:30

+0

Thanks Sathya..Can任何人都可以告訴我..如何從當前日期獲得7天的日期.. – 2012-07-25 07:23:20

+2

@ prakash.k - >'select date('now','+ 7 days')' – Sathya 2012-07-25 10:37:02