以下是我的Code.I想要获取函数中传递的日期数据,但我无法通过使用以下代码获取它们。所以任何人都可以帮助我。谢谢提前。
// Getting All Call Details
public ArrayList<Get_Call_Logs> getAllCallLDetails(String date) {
ArrayList<Get_Call_Logs> callDetailsList = new ArrayList<Get_Call_Logs>();
// Select All Query
String selectQuery = "SELECT * FROM " + TABLE_CALL_LOG + " WHERE Datetime('"+ KEY_DATETIME +"') = Datetime('"+ date +"')";
System.out.println("selectQuery =======>"+selectQuery);
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor != null) {
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
// Adding call Log Details to list
callDetailsList.add(new Get_Call_Logs(cursor.getInt(0),
cursor.getString(1), cursor.getString(2), cursor.getString(3),cursor.getString(4),
cursor.getString(5), cursor.getString(6), Double.parseDouble(cursor.getString(7)), Double.parseDouble(cursor.getString(8)),cursor.getString(9)));
} while (cursor.moveToNext());
}
}
// return contact list
return callDetailsList;
}
location_details.addAll(db.getAllLocationHistoryDetails(DAT));这是我调用函数的一行,我实现了一个日期选择器。日期选择器中的选定日期在此传递。所选日期的格式为“dd / MM / yyyy”,日期存储在表中在“MM / dd / yyyy hh:mm:ss aa”formate。现在我想要的是我必须从Sqlite表的日期选择器中显示所选日期的数据。
答案 0 :(得分:0)
看起来很好,但如果这不起作用,你可以尝试这个,然后仔细检查你的选择查询..
cursor.moveToFirst();
//int i = 0;
while (!cursor.isAfterLast()) {
callDetailsList.add(new Get_Call_Logs(cursor.getInt(0),
cursor.getString(1), cursor.getString(2), cursor.getString(3),cursor.getString(4),
cursor.getString(5), cursor.getString(6), Double.parseDouble(cursor.getString(7)), Double.parseDouble(cursor.getString(8)),cursor.getString(9)));
cursor.moveToNext();
}
最重要的是不要忘记关闭游标和数据库连接
答案 1 :(得分:0)
KEY_DATETIME
是一个列名,不应该是'quoted'
作为SQL字符串文字。改为:
String selectQuery = "SELECT * FROM " + TABLE_CALL_LOG + " WHERE Datetime("+ KEY_DATETIME +") = Datetime('"+ date +"')";
如果仍有问题,请修改您的问题并提供日期时间列和date
参数格式的实际数据。