Android 使用sqlite的总和

Android 使用sqlite的总和,android,sqlite,date,Android,Sqlite,Date,我是android新手,在获取总金额大于日期(“现在”)时遇到问题。我将日期作为整数存储在sqlite数据库中,我的金额列作为Real。我从DatePicker中获取日期,并使用 @Override public void onDateSet(DatePicker view, int selectedYear,int selectedMonth, int selectedDay) { year = selectedYear; month = selectedMonth; day = se

我是android新手,在获取总金额大于日期(“现在”)时遇到问题。我将日期作为整数存储在sqlite数据库中,我的金额列作为Real。我从DatePicker中获取日期,并使用

@Override
public void onDateSet(DatePicker view, int selectedYear,int selectedMonth, int selectedDay) {

year  = selectedYear;
month = selectedMonth;
day   = selectedDay;
Calendar c=Calendar.getInstance();
c.set(selectedYear, selectedMonth, selectedDay);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
long dateInMillis=c.getTime().getTime();//I am putting this variable into date column in sqlite
这是我的问题

String selectTotalAmountQuery = "select sum(amount) as total from entry where"+          "d_date>date('now')";//entry is my table name
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery(selectTotalAmountQuery, null);
double amount=0;

if (c.moveToFirst()) {
    amount = c.getDouble(c.getColumnIndex("total"));

    Log.i("TotalAmount :",amount+"");
    c.close();
}
db.close();
日志输出为 总数:0.0


我知道在不使用日期函数的情况下还有其他方法可以做到这一点,但我想知道是否可以使用日期(“现在”)函数

Sqlite中的日期函数返回“YYYY-MM-DD”字符串格式,因此它不返回毫秒,只返回日期部分而不返回时间

一种解决方案是从java代码中获取当前毫秒数并将其传递到查询中。

SQLite以
yyyy-MM-dd
格式返回字符串

要获取与
d_date
列中的值兼容的数字,请使用
strftime
获取自历元以来的秒数,并将其转换为毫秒:

... WHERE d_date > 1000 * strftime('%s', 'now', 'start of day')

成功了!我可以投票支持你的答案,因为我的声誉低于15,但一旦我的声誉超过15,我会投票支持你的答案。谢谢