我想檢索兩個日期之間的數據在sqlite db.I已經嘗試使用BETWEEN子句,它工作正常,如果日期是相同的月份像'28 -10-2012'和'29 -10- 2012'在兩個日期之間獲取數據
但是,如果日期是像'30不同-10-2012' 和‘2012年1月11日’一個月它不是顯示數據
請幫助我。
我想檢索兩個日期之間的數據在sqlite db.I已經嘗試使用BETWEEN子句,它工作正常,如果日期是相同的月份像'28 -10-2012'和'29 -10- 2012'在兩個日期之間獲取數據
但是,如果日期是像'30不同-10-2012' 和‘2012年1月11日’一個月它不是顯示數據
請幫助我。
試試這個查詢。
return db.query(TABLE_NAME, new String[]{"temp_sp_date","temp_sp_amount"},
"(temp_sp_date >= ? and temp_sp_date <= ?)" , new String[] {startDate,endDate}, " strftime(" + "\"%d" + "-" + "%m" + "-" + "%Y\"" + ",temp_sp_date) ",null , null);
這裏temp_sp_date是列從我的桌子和的startDate和結束日期是日期paramtere。
由於性能方面的考慮,在某些情況下將時間存儲爲ms可能更好。 – sandrstar
它會在同一個月工作,因爲sql的defult概念在兩個日期之間獲取數據的工作只適用於日期格式類似YY/MM/DD .....在你的情況下你還需要使用其他屬性而不是僅使用日期條目...
我建議日期在SQLite中以毫秒爲單位寫入。
首先你讀的所有日期的ArrayList中寫日期,
Calendar cal=Calendar.getIntance();
cal.set(yyyy,mm,dd);
dates.add(cal.getTimeInMillis());
其次,你可以比較兩個日期
long start_time;
long end_time;
Calendar cal=Calendar.getIntance();
start_time=cal.set(2012,9,30);
end_time=cal.set(2012,10,1);
for(int i=0,i<dates.size();i++)
{
if(dates.get(i)>start_time&&dates.get(i)<end_time)
{......`enter code here`}
}
cursor = sdb.query(TABLE_INFORMATION, Info_Date_Time_Array, DATE+" BETWEEN ? AND ?", new String[]{mindate,maxdate}, null,
null, null);
你如何存儲日期信息在數據庫中? – sandrstar
我把它存儲爲DD/MM/YY格式 – Govind
它可以工作,如果我將日期格式更改爲YY/MM/DD – Govind