0

我想在 sqlite db 中检索两个日期之间的数据。我尝试过使用 BETWEEN 子句,如果日期是同一个月,例如“28-10-2012”和“29-10-2012”,它工作正常

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

请帮帮我。

4

4 回答 4

2

它会在同一个月工作,因为 sql 在两个日期之间获取数据的默认概念仅适用于日期格式类似于 YY/MM/DD ..... 在您的情况下,您也需要使用其他属性而不是仅使用日期输入...

于 2012-11-01T06:06:04.863 回答
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`}
}
于 2012-11-01T06:16:15.687 回答
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是我表中的列,startDateendDate是日期参数。

于 2012-11-01T05:59:42.090 回答
0
cursor = sdb.query(TABLE_INFORMATION, Info_Date_Time_Array, DATE+" BETWEEN ? AND ?", new String[]{mindate,maxdate}, null,
                    null, null);
于 2013-08-16T07:03:43.707 回答