如何从Android中的Sq-lite只检索1个月?

时间:2018-06-02 14:50:12

标签: android sqlite android-sqlite

我只想从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 :(得分:0)

您需要在查询中添加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');"