我以yyyy-MM-dd
格式存储日期。我将其与当前日期进行比较。查询是这样的:
public Cursor getData() {
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
String queryGetData = "SELECT * FROM " + TABLE_NAME
+ " WHERE " + SEARCH_DATE + " >= date('now') LIMIT 5";
Cursor result = sqLiteDatabase.rawQuery(queryGetData, null);
return result;
}
问题在于,如果查询是在较早时间(但仍在同一天)创建的,则查询不会返回任何结果。我再次只保存数据库中的日期部分而不是时间。
导致此行为的原因是什么?
答案 0 :(得分:0)
我的猜测是你实际上并没有将数据存储为yyyy-MM-dd,而是以包含时间的其他格式存储,否则时间不会是一个因素。
您可以尝试: -
String queryGetData = "SELECT * FROM " + TABLE_NAME + " WHERE date(" + SEARCH_DATE + ") >= date('now') LIMIT 5";
答案 1 :(得分:0)
如果您的日期时间格式没有错误,您可以检查并将 localtime 参数添加到日期()函数
String queryGetData = "SELECT * FROM " + TABLE_NAME
+ " WHERE " + SEARCH_DATE + " >= date('now', 'localtime') LIMIT 5";
<强>注意强>: