【发布时间】:2017-05-14 06:32:22
【问题描述】:
我正在创建提醒应用程序,并在 SQLite 中添加提醒详细信息。我将日期添加为dd/MM/yyyy HH:mm:ss 格式的字符串。但是当我试图获取接下来 7 天的数据时,我得到了以下异常。
FATAL EXCEPTION: main
Process: com.sandy.remindcall, PID: 31982
android.database.sqlite.SQLiteException: near "11": syntax error (code 1): , while compiling: SELECT * FROM call_reminder WHERE reminder_date_time BETWEEN 21/05/2017 11:49:19 AND 14/05/2017 11:49:19
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:887)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:498)
这是我的代码。
public Cursor getNextSevenDaysRecord(){
Calendar theEnd = Calendar.getInstance();
Calendar theStart = (Calendar) theEnd.clone();
theStart.add(Calendar.DAY_OF_MONTH, +7);
SimpleDateFormat dateFormat = new SimpleDateFormat(Constants.DD_MM_YYYY_HH_MM_SS);
String start = dateFormat.format(theStart.getTime());
String end = dateFormat.format(theEnd.getTime());
// Now you have date boundaries in TEXT format
Cursor cursor = mDb.rawQuery("SELECT * FROM " + DATABASE_TABLE + " WHERE "+KEY_DATE_TIME+" BETWEEN "+start+" AND "+end,null);
return cursor;
}
请给我任何参考
【问题讨论】:
-
由于SQLite没有日期和时间数据类型,你是如何定义表中的列的?
-
KEY_DATE_TIME 只不过是字符串。我正在保存日期 ins 字符串格式 dd/MM/yyyy HH:mm:ss
-
使用 SQLite - 日期和时间,否则您无法使用
between进行类似查询。
标签: android sqlite date intervals