【发布时间】:2018-12-03 04:00:35
【问题描述】:
@Override
public void onCreate(SQLiteDatabase db) {
this.db = db;
db.execSQL(
"CREATE TABLE `Transaction` (" +
"_id integer primary key autoincrement," +
"`categoryID` INT NOT NULL , " +
"`incomeAmount` INT NOT NULL, " +
"`expenseAmount` INT NOT NULL, " +
"`note` VARCHAR(50) NOT NULL , " +
"`transactionDate` INT NOT NULL, " +
"`repeatType` INT NOT NULL , " +
"`transactionType` BOOLEAN NOT NULL )"
);
}
public Cursor readDatabaseTransactionWeekly(Date date){
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.clear(Calendar.MINUTE);
cal.clear(Calendar.SECOND);
cal.clear(Calendar.MILLISECOND);
cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
Date startWeek = cal.getTime();
Calendar nextWeelCal = Calendar.getInstance();
nextWeelCal.setTime(cal.getTime());
nextWeelCal.add(Calendar.WEEK_OF_MONTH,1);
Date nextWeek = nextWeelCal.getTime();
Log.d(TAG, "readDatabaseTransactionWeekly: "+startWeek+" to "+nextWeek+"");
this.db = getReadableDatabase();
Cursor transactionRecordWeekly = this.db.rawQuery("SELECT * FROM `Transaction` WHERE transactionDate BETWEEN '"+startWeek+"' AND '"+nextWeek+"'",null);
transactionRecordWeekly.moveToFirst();
return transactionRecordWeekly;
}
public Cursor readDatabaseTransactionMonthly(Date date){
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.clear(Calendar.MINUTE);
cal.clear(Calendar.SECOND);
cal.clear(Calendar.MILLISECOND);
cal.set(Calendar.DAY_OF_MONTH, 1);
Date startMonth = cal.getTime();
Calendar nextMonthCal = Calendar.getInstance();
nextMonthCal.setTime(cal.getTime());
nextMonthCal.add(Calendar.MONTH,1);
Date nextMonth = nextMonthCal.getTime();
this.db = getReadableDatabase();
Cursor transactionRecordMonthly = this.db.rawQuery("SELECT * FROM `Transaction` WHERE transactionDate BETWEEN '"+startMonth+"' AND '"+nextMonth+"'",null);
transactionRecordMonthly.moveToFirst();
return transactionRecordMonthly;
}
我正在尝试每周和每月从 Andoroid 中的 SQLite 读取数据,并且我正在使用 SQLite BETWEEN 语句。但它没有按预期工作。每周部分根本不返回任何数据,而每月正常工作不显示当前一周的数据。我查看了其他 4 个 stackoverflow 问题,但无法解决。
【问题讨论】:
标签: java android xml sqlite android-fragments