我正在尝试获取两个日期之间的列的总和。但是我得到的不是两个日期之间的总和,而是整个总和。以下是我尝试过的。
创建sqlite表的代码:
public class DataBaseHelper extends SQLiteOpenHelper {
public DataBaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table demo(id integer primary key,current_date date,transaction_type text,category text,amount text)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
我正在按如下方式从 Activity 中执行查询:
DataBase db=new DataBase(this);
int sum;
sum=db.calculateSumDebit(start_date, end_date);
DataBase 类中的查询代码:
public int calculateSumDebit(String start_date, String end_date)
{
int sum=0;
SQLiteDatabase sqldg=database.getReadableDatabase();
Cursor cur = sqldg.rawQuery("SELECT sum(amount) FROM demo WHERE current_date BETWEEN '" + start_date + "' AND '" + end_date + "'", null);
if(cur.moveToFirst())
{
sum= cur.getInt(0);
}
return sum;
}
我得到的是全部金额列的总和,而不是所需日期之间的总和。请帮忙。
最佳答案
您使用了 'current_date' 作为列名,它是 sqlite 中的关键字。这将始终返回当前日期。请更改列名称,如 'curr_date' 。在 sqlite 中也没有 date 数据类型使其成为 Text 并使用这样的查询
SELECT SUM(amount) FROM demo WHERE date(curr_date) BETWEEN date("2015-12-16") AND date("2015-12-17")
谢谢
关于android - 在android中的两个日期值之间获取SQLite表中值的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34304284/