Как получить только 1 месяц из Sq-lite в Android? - PullRequest
0 голосов
/ 02 июня 2018

Я хочу получить только данные за месяц из SQLite.Означает, что я хочу получить данные с начала месяца по настоящее время.Если новый месяц запоминается, он должен показывать только данные за этот месяц.

Вот мой код:

public void onCreate(SQLiteDatabase sqLiteDatabase) {
        final String query = "CREATE TABLE " + Db_Contract.Db_Fieds.TABLE_NAME + " ("
                + Db_Contract.Db_Fieds._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
                + Db_Contract.Db_Fieds.MONEY + " REAL NOT NULL,"
                + Db_Contract.Db_Fieds.CAT + " TEXT NOT NULL,"
                + Db_Contract.Db_Fieds.DATE + " TIMESTAMP DEFAULT CURRENT_DATE,"
                + Db_Contract.Db_Fieds.TIMESTAMP + " TIMESTAMP DEFAULT CURRENT_TIMESTAMP" + "); ";
        sqLiteDatabase.execSQL(query);
    }

Запрос:

private Cursor getAllCurrentData()
    {
        String[] selectArg = new String[]{};

        return db.query(Db_Contract.Db_Fieds.TABLE_NAME,
                null ,
                Db_Contract.Db_Fieds.DATE+ ">= strftime('%d','now');",
                selectArg,
                null,
                null,
                Db_Contract.Db_Fieds.TIMESTAMP);
    }

Это мой запрос для получения данных за один месяц.Проблема с этим также заключается в получении данных за предыдущий месяц.Как я могу это исправить?Заранее спасибо

1 Ответ

0 голосов
/ 02 июня 2018

Вам нужно будет добавить 2 условия в запрос.Например:

Db_Contract.Db_Fieds.DATE+ "<= strftime('%Y-%m-%d','now') and Db_Contract.Db_Fieds.DATE+ ">= strftime('%Y-%m-%d', 'now', 'start of month');"
...