如何在给定日期从SQlite获取特定值?

时间:2014-05-22 04:44:25

标签: android sqlite

以下是我的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.getAllLocationHistoryDe​​tails(DAT));这是我调用函数的一行,我实现了一个日期选择器。日期选择器中的选定日期在此传递。所选日期的格式为“dd / MM / yyyy”,日期存储在表中在“MM / dd / yyyy hh:mm:ss aa”formate。现在我想要的是我必须从Sqlite表的日期选择器中显示所选日期的数据。

2 个答案:

答案 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参数格式的实际数据。