Android中的SQLite数据库用于选择查询以及between子句

时间:2015-03-02 11:55:46

标签: android

我在Android中使用SQLite数据库。我在SQLite数据库中使用了rawQuery。我的数据库方法如下:

public Cursor selectedDate(String from_dt ,String to_dt) 
{
    try
    {
        String str_k="select RowId,Bill_Date from  SalesMaster Where Bill_Date between '"+
                         from_dt+ "'and'"+to_dt+ "'";
        System.out.println(str_k);

        Cursor c1 = sqldb.rawQuery(
                        "select RowId from  SalesMaster Where Bill_Date between '"+
                        from_dt+ "'and'"+to_dt+ "'", null);
        return c1; 
    }
    catch(Exception e)
    { 
        System.out.println("inside database file "+ e);
        return null;
    }
}

我的.java文件是

public void ReportSell(String from_dt,String to_dt)
{
    System.out.println("report selling method has been called");
    String RowId="";
    item db1 = new item(getBaseContext());
    db1.openDb();

    try
    {
        final Cursor cursor = db1.selectedDate(from_dt, to_dt);

        if(cursor.moveToFirst())
        {
            do
            {
                RowId= cursor.getString(cursor.getColumnIndex("RowId")).toString();
                System.out.println("inside java Row Id  file "+ RowId);
                salesid.add(RowId);
                ArrayAdapter <String> adapter = new ArrayAdapter <String>(this, 
                                                     android.R.layout.simple_list_item_1,
                                                     salesid);
            } while(cursor.moveToNext());
        }
        else
        {
            Toast.makeText(getApplicationContext(), "No data found",
                               Toast.LENGTH_LONG).show();  
        }
    } catch(Exception e) 
    {
        System.out.println("inside java file "+ e);
    }
    db1.closeDb(); 
}

主要问题是它会从RowId表返回salesMaster按日期和迄今为止,但实际问题是它会返回值但不包括最后的日期。< / p>

例如,如果我想从2015年2月25日到2015年2月28日RowId 因此它将从2015年2月25日到2015年2月27日提供RowId但不包括在2015年2月28日。

1 个答案:

答案 0 :(得分:0)

您必须将between替换为

  

表达式(min&lt; = expr AND expr&lt; = max)

将查询更改为

 String str_k="SELECT * from TABLE_NAME Where COLUMN_NAME >='"+from_date+ "' AND <= '"+to_date+ "'";

            System.out.println(str_k);