我在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日。
答案 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);