从具有当前日期或即将到来的日期的记录获取数据库中的记录

时间:2011-11-10 10:02:18

标签: android

我有一个以下代码,用于从数据库中按升序获取记录         public Cursor fetchAllRemindersD(){

    return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE,
            KEY_BODY, KEY_PHONE,KEY_DATE_TIME}, null, null, null, null,KEY_DATE_TIME +  " ASC");
}

日期以字符串格式存储。 我应该怎么做才能得到日期有当前日期或即将到来的日期的记录..

3 个答案:

答案 0 :(得分:0)

你想要这样的东西:

mDB.query(
    DATABASE_TABLE, 
    new String[] {KEY_ROWID, KEY_TITLE, KEY_BODY, KEY_PHONE, KEY_DATE_TIME}, 
    KEY_DATE_TIME + " >= ?", 
    new String[]{Long.toString(System.currentTimeMillis())}, 
    null, null, KEY_DATE_TIME +  " ASC");

...假设您的日期以纪元格式存储。

答案 1 :(得分:0)

这取决于您在数据库中存储日期的格式。如果您以'YYYYMMDD'格式存储日期,则可以轻松应用'<'和'>'查询中的运算符以获取当前和即将发生的记录。例如,'20111110'总是大于'20111109'。

答案 2 :(得分:0)

这取决于您如何在db中存储数据。如果是unixtime标记,则获取当前日期并返回高于该值的条目。

您需要以下内容

long timeStamp = System.currentTimeMillis() / 1000;


String myQuery = "SELECT * FROM " + DATABASE_TABLE +" WHERE" + KEY_DATE_TIME + "=?";
mDb.rawQuery(myQuery, new String[] {timeStamp});