我是Android的新手,我遇到的问题是总金额大于日期('现在')。我将日期存储为sqlite数据库中的INTEGER,将我的数量列存储为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();
日志输出是 TotalAmount:0.0
我知道在没有使用日期功能的情况下可以有其他方法这样做但是我想知道这是否可以使用日期('现在')功能?
答案 0 :(得分:0)
答案 1 :(得分:0)
SQLite的date function以yyyy-MM-dd
格式返回一个字符串。
要获得与d_date
列中的值兼容的数字,请使用strftime
获取自纪元以来的秒数,并将其转换为毫秒数:
... WHERE d_date > 1000 * strftime('%s', 'now', 'start of day')