【发布时间】:2013-01-01 01:40:10
【问题描述】:
我在本地 SQLite 数据库上运行与日期相关的查询时遇到了巨大的问题,感谢您的帮助!
我正在尝试检索其事件日期在给定年份和月份内的所有事件。为此,我计算了该月的第一个日期和最后一个日期,然后查询事件日期在此范围内的哪个位置。
我的测试数据使用: String[] testEventDates = {"2011-12-17", "2012-02-25", "2012-01-10", "2012-01-01", "2011-12-24","2012-02-25"}
但是当我在下面运行查询时,我会检索到所有这些条目,这是错误的。我的查询是 (SELECT...WHERE) "eventDate >= " + firstDay。
当我添加另一个限制时," AND "eventDate
如果您对此有任何线索,请帮助我!
// fetch events by month, between first and last days calculated
public Cursor fetchEventsByMonth(int month, int year) {
String firstDay, lastDay, correctedMonth;
if (month == 12) {
lastDay = Integer.toString(year+1) + "-01-01";
} else{
if (month+1 < 10) {
correctedMonth = "0" + Integer.toString(month+1);
} else correctedMonth = Integer.toString(month+1);
lastDay = Integer.toString(year) + "-" + correctedMonth
+ "-01";
}
if (month < 10) {
correctedMonth = "0" + Integer.toString(month);
} else correctedMonth = Integer.toString(month);
firstDay = Integer.toString(year) + "-" + correctedMonth + "-01";
firstDay = "2012-02-25";
Cursor mCursor =
mDb.query(DATABASE_TABLE_EVENTS, new String[] { KEY_EID, KEY_ENAME,
KEY_EINTERESTS, KEY_EBENS, KEY_EDATE, KEY_ETIME, KEY_EVHO, KEY_EABBR,
KEY_ELOCATION, KEY_ETYPE, KEY_ENATURE, KEY_ESTATUS,
KEY_ESIGNEDUP, KEY_ECAPACITY}, "eventDate >= " + firstDay
// + " AND "eventDate < " + lastDay
, null, null, null,
"eventDate");
if (mCursor != null) mCursor.moveToFirst();
return mCursor;
}
【问题讨论】: