我正在做一个包含名为'Purchase'的表格的应用程序,使用sq lite。表有三个字段ID,购买金额,日期。当我浏览Google时,我发现日期字段以sq lite格式存储为整数或文本。所以我使用var char来存储文本。 现在我的问题是我想根据日期约束显示表格中的详细信息 (例如:27-7-2012到10-8-2013之间的数据)我如何提取数据,因为日期字段被声明为var char .. 任何人都可以帮忙......
答案 0 :(得分:0)
这是我在DBAdapter类中使用的方法:
public Cursor getAllDetailsField(String date) {
return db.rawQuery("select * from " + TABLE_NAME_FIELDW + " where "
+ KEY_DATE + " = '" + date + "'", null);
}
这里Date作为参数传递,这意味着当我在Activity中使用这个方法时,我必须为方法分配一个Date,所以它将执行查询。上面的查询只是获取我在活动中传递的日期的记录。
活动:
private void loadFieldDatabase(){
String date = app.getDARDate();
// DATE is FETCHED FROM APPLICATION CLASS OBJECT, YOU CAN SET IT
// IN PREVIOUS OR CURRENT ACTIVITY , HOWEVER YOU MAY FETCH ANY WAY
// YOU WANT TO. JUST MAKE SURE WHATEVER YOU PASS, HOLDS THE DATE VALUE
String date = app.getDate();
Cursor c = db.getAllDetailsField(date);
if (c != null && c.getCount() > 0) {
c.moveToFirst();
for (int count = 0; count < c.getCount(); count++) {
DBbeanclass detail = new DBbeanclass();
detail.setDate(c.getString(c
.getColumnIndex(DARDBAdapter.KEY_DATE)));
detail.setName(c.getString(c
.getColumnIndex(DARDBAdapter.KEY_NAME)));
arrCustomerField.add(detail);
c.moveToNext();
}
c.close();
}
}
你会看到我没有为你编写查询。但我认为你可以自己做到这一点
答案 1 :(得分:0)
考虑使用SQLite appropriate日期格式。
使用YYYY-MM-DD
格式的日期将大大简化您的代码,允许更快的数据库内部(无需获取每一行来评估代码),并且还可以利用索引来利用性能。
转换现有数据也很容易。