使用sqlite的总金额
问题描述:
我是新来的android和我有问题获取总金额大于日期('现在')。我将sqlite数据库中的日期存储为INTEGER,将我的金额列存储为Real。我从DatePicker的服用日期和使用使用sqlite的总金额
@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的date function返回格式为yyyy-MM-dd
的字符串。
为了得到一个数字,是在你的d_date
列与价值兼容,使用strftime
得到的,因为时代的秒数,并将其转换为毫秒:
... WHERE d_date > 1000 * strftime('%s', 'now', 'start of day')
它的工作!我可以将你的答案投票,因为我的声望低于15,但是一旦我超过了15的声望,我会投你的答案。谢谢 – Brother 2014-08-31 20:36:42