我正在开发一个教程项目,并使用SQLite数据库。我试图在数据库中使用WHERE on DATE列检索记录。但它什么也没有收回。我的密码怎么了?
CREATE数据库助手类中的语句
private static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " ("
+ COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ COLUMN_DESCRIPTION + " TEXT,"
+ COLUMN_DATE + " DATE,"
+ COLUMN_DONE + " BOOLEAN)";这是检索记录的方式
String date = "04-22-2014";
ArrayList<Task> tasks = new ArrayList<Task>();
db = getReadableDatabase();
String query = "SELECT * FROM "+TABLE_NAME + " where "+ COLUMN_DATE + " = "+ date;
Cursor cursor = db.rawQuery(query,null);
if(cursor.moveToFirst())
{
do{
Task task = new Task();
task.setId(cursor.getInt(0));
task.setDescription(cursor.getString(1));
task.setDate(cursor.getString(2));
task.setDone(Boolean.valueOf(cursor.getString(3)));
tasks.add(task);
}
while(cursor.moveToFirst());
}
return tasks;但它并没有归还任何记录。
发布于 2016-01-27 07:05:45
从基于Date.You的sqlite数据库中获取数据需要使用标准的数据格式,而插入数据和基于date.The标准的数据检索是YYYY DD。欲了解更多信息:datefunc.html
试试这个..。
String date = "2014-04-22";而不是
String date = "04-22-2014";在以sqlite格式保存日期时,您需要设置上面提到的格式。
日期和时间数据类型
SQLite没有预留用于存储日期和/或时间的存储类。相反,SQLite的内置日期和时间函数能够将日期和时间存储为文本、实值或整数值。
TEXT作为ISO8601字符串(“YYYY DD HH:MM:SS.SSS")。
REAL作为朱利安日号,是公元前4714年11月24日格林威治正午以来的天数,根据公历。
整数作为Unix时间,秒数自1970-01-01 00:00:00 UTC.应用程序可以选择以任何一种格式存储日期和时间,并可以使用内置的日期和时间函数在格式之间自由转换。
发布于 2016-01-27 06:48:27
尝尝这个
String query = "SELECT * FROM "+TABLE_NAME + " where "+ COLUMN_DATE + " = "+ "'"+date+"'";https://stackoverflow.com/questions/35030439
复制相似问题