Android sqlite在日期之间搜索数据

时间:2017-02-01 05:22:53

标签: android sqlite

我试图在两个日期之间从sqlite获取数据......

我的日期值存储在sqlite 27/01/2017 15:10:42

我的获取数据的代码......

 Cursor fetchallconsultations(String from,String to) {       
    SQLiteDatabase db = this.getReadableDatabase();
    return db.rawQuery("select * from gle_consultns where consultn_create_date >= '"+from+" 00:00:00' and consultn_create_date <= '"+to+" 00:00:00'", null);
}

from和to的值是..

这== 26/01/2017

要== 01/02/2017

但是执行fetchallconsultations函数时游标为空。我该如何解决这个问题。?

3 个答案:

答案 0 :(得分:1)

您的日期以非标准格式存储。标准格式按顺序从左到右放置年,月,日。因此,以下查询应该为您提供预期的结果:

SELECT *
FROM gle_consultns
WHERE consultn_create_date >= '2017-01-26 00:00:00' AND
      consultn_create_date <= '2017-02-01 00:00:00'

您需要清理日期数据,或者可能需要复杂的字符串提取来构建上述表单的时间戳。

答案 1 :(得分:0)

String str="SELECT * FROM tablename WHERE date BETWEEN '"+startdate+"' AND '"+enddate+"'";

cursor = db.rawQuery(str, null);

[where date format is startdate=2017-01-26 and enddate=2017-02-01]

答案 2 :(得分:-1)

使用

expr BETWEEN ? AND ?

并使用selectionArgs

请参阅https://www.sqlite.org/lang_expr.html