データベースに次のテーブルがあります。
database.execSQL("create table " + TABLE_LOGS + " ("
+ COLUMN_ID + " integer primary key autoincrement,"
+ COLUMN_ID_DAY_EXERCISE + " integer not null,"
+ COLUMN_REPS + " integer not null,"
+ COLUMN_WEIGHT + " real not null,"
+ COLUMN_1RM + " real not null,"
+ COLUMN_DATE + " integer not null"
+ ")");
UNIXタイムスタンプをCOLUMN_DATEフィールド(整数)に格納します。
これで、すべてのレコードを取得する次の関数ができました。
public Cursor fetchCurrentLogs(long dayExerciseDataID) {
// where day = today
Cursor cursor = database.rawQuery("select " + MySQLiteHelper.COLUMN_ID + "," + MySQLiteHelper.COLUMN_REPS + ", " + MySQLiteHelper.COLUMN_WEIGHT + " " +
"from " + MySQLiteHelper.TABLE_LOGS + " " +
"where " + MySQLiteHelper.COLUMN_ID_DAY_EXERCISE + " = '" + dayExerciseDataID + "'", null);
if (cursor != null) { cursor.moveToFirst(); }
return cursor;
}
今私がやりたいのは、この関数が今日のレコードのみを取得するようにしたいということです。
次に、別の関数をまったく同じにしたいのですが、今日のレコードを取得するのではなく、前日のレコードを取得したいと思います。前とは、今日ではないレコードがある最新の日を意味します。つまり、昨日、3日前、または1か月前の可能性があります。
私はMySQLであなたが今日のためにこのようなことをすることができることを知っています:
where date_format(from_unixtime(COLUMN_DATE), '%Y-%m-%d')= date_format(now(), '%Y-%m-%d')
SQLiteのこれに相当するものは何ですか?
また、上記のように前日のwhere句を手伝ってくれる人はいますか?
本当にありがとう。