@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;
}
Я пытаюсь прочитать данные из SQLite в Andoroid на недельной и месячной основе, и я использую оператор SQLite BETWEEN.Но это не работает, как ожидалось.Еженедельный раздел не возвращает никаких данных вообще, в то время как Ежемесячно работает нормально, не показывает данные текущей недели.Я изучил еще 4 вопроса, связанных со стековым потоком, но не смог их решить.