所以我有一个名为month的输入,我想进行查询,以便从自定义列表视图中的所有行返回包含该特定月份的行。 这是我在DBAdpater中的代码。我必须做什么,以便db返回包含该特定月份的所有行。 我保存日期的格式是05/06/15。在参数中发送的字符串是" / 08 /"。
public Cursor getRowsFromMonth(String month){
String[] FROM = {
KEY_ROWID,KEY_DATE, KEY_DESCRIPTION, KEY_CATEGORY, KEY_AMOUNT, KEY_PAIDBY
};
String where = "date=?";
String[] whereArgs = new String[] {
"%"+ month+"%"
};
return db.query(DATABASE_TABLE, FROM, where, whereArgs, null, null, null);
}
答案 0 :(得分:1)
如果您使用通配符(%
),则where子句应使用LIKE
而不是=
,而不是
String where = "date=?";
你需要
String where = "date LIKE ?";
但是,我也会重新考虑如何存储您的日期,因为您可能希望某天使用sqlite的日期时间函数:
SQLite没有为存储日期留出的存储类 和/或时间。相反,SQLite的内置日期和时间函数 能够将日期和时间存储为TEXT,REAL或INTEGER 值:
TEXT as ISO8601 strings(“YYYY-MM-DD HH:MM:SS.SSS”)。
真实如朱利安 日数,11月以来格林威治中午以来的天数 公元前24,4714根据公历格里高利历。
INTEGER as Unix Time,自1970-01-01 00:00:00 UTC以来的秒数。 应用程序可以选择在任何这些中存储日期和时间 使用内置日期格式和格式之间自由转换 时间函数。