如何通过比较两个日期从Sqlite获取记录

时间:2017-04-27 07:51:47

标签: android sqlite date

我在网上对此进行了大量搜索,但还没有得到解决方案。

基本上我想在我的sqlite数据库的两个日期之间填充记录到我的自定义android列表视图。

我知道SQLite没有专用的DATETIME类型。通常人们做的是确保将日期存储为一致的格式化字符串;例如,YYYY-MM-DD hh:mm:ss。如果您这样做,只要您保持一致,就可以直接比较日期。

但是我的查询会返回错误的记录。

这些是我尝试的查询:

 public Cursor getBhattiNamesByDate(String fromDate, String todate, SQLiteDatabase sqLiteDatabase) {

    /*String query = " SELECT * FROM "+ AddBhattiContract.AddBhattiItems.TABLE_NAME+" WHERE "
            +AddBhattiContract.AddBhattiItems.COL_1+" BETWEEN '"+fromDate+"' AND '"+todate+"'";*/

    String query = " SELECT * FROM "+ AddBhattiContract.AddBhattiItems.TABLE_NAME+" WHERE "
            +AddBhattiContract.AddBhattiItems.COL_1+" >= Datetime('"+fromDate+"') AND "
            +AddBhattiContract.AddBhattiItems.COL_1+" <= Datetime('"+todate+"')";

  /*  String query = " SELECT * FROM "+ AddBhattiContract.AddBhattiItems.TABLE_NAME+" WHERE "
            +AddBhattiContract.AddBhattiItems.COL_1+" >= '"+fromDate+"' AND "
            +AddBhattiContract.AddBhattiItems.COL_1+" <= '"+todate+"'";*/

    cursor = sqLiteDatabase.rawQuery(query, null);
    Log.e("TagWastageCursor","true");
    return cursor;
}

1 个答案:

答案 0 :(得分:0)

实现此目的的最佳方法是将dare保存为时间戳(String),然后在查询时,只需解析这些时间戳,然后就可以进行比较。 时间戳是从1970年1月1日起的秒数。