我有一个以下代码,用于从数据库中按升序获取记录 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");
}
日期以字符串格式存储。 我应该怎么做才能得到日期有当前日期或即将到来的日期的记录..
答案 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});