Android 使用sqlite的总和
我是android新手,在获取总金额大于日期(“现在”)时遇到问题。我将日期作为整数存储在sqlite数据库中,我的金额列作为Real。我从DatePicker中获取日期,并使用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
@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,我会投票支持你的答案。谢谢