sqliteデータベースの2つの日付の間のデータを取得したい。BETWEEN句を使用してみたが、日付が「28-10-2012」と「29-10-2012」のように同じ月の場合は正常に機能する
ただし、日付が「30-10-2012」と「1-11-2012」の月のように異なる場合、データは表示されません
私を助けてください。
sqliteデータベースの2つの日付の間のデータを取得したい。BETWEEN句を使用してみたが、日付が「28-10-2012」と「29-10-2012」のように同じ月の場合は正常に機能する
ただし、日付が「30-10-2012」と「1-11-2012」の月のように異なる場合、データは表示されません
私を助けてください。
2つの日付間のデータを取得するためのSQLのデフォルトの概念は、日付形式がYY / MM / DDのような場合にのみ機能するため、同じ月に機能します.....あなたの場合、使用するのではなく、他の属性も使用する必要があります日付入力...
SQLite にミリ秒単位で日付を書き込むことをお勧めします。
最初にすべての日付を読み取り、ArrayList 日付に書き込みます
Calendar cal=Calendar.getIntance();
cal.set(yyyy,mm,dd);
dates.add(cal.getTimeInMillis());
次に、2 つの日付を比較できます
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`}
}
このクエリを試してください。
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とendDateは日付パラメーターです。
cursor = sdb.query(TABLE_INFORMATION, Info_Date_Time_Array, DATE+" BETWEEN ? AND ?", new String[]{mindate,maxdate}, null,
null, null);