在两个日期之间获取数据

时间:2012-11-01 05:48:52

标签: android sqlite android-sqlite

我想在sqlite db中的两个日期之间检索数据。我尝试过使用BETWEEN子句,如果日期是'28 -10-2012'和'29 -10-2012',那么它可以正常工作

但是,如果日期不同,例如'30 -10-2012'和'1-11-2012'月,则不显示数据

请帮帮我。

4 个答案:

答案 0 :(得分:2)

它会在同一个月工作,因为sql在两个日期之间获取数据的defult概念只适用于日期格式类似于YY / MM / DD .....在你的情况下你需要使用其他属性而只使用日期条目......

答案 1 :(得分:1)

我建议在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`}
}

答案 2 :(得分:0)

尝试此查询。

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 是日期参数。

答案 3 :(得分:0)

cursor = sdb.query(TABLE_INFORMATION, Info_Date_Time_Array, DATE+" BETWEEN ? AND ?", new String[]{mindate,maxdate}, null,
                    null, null);