首页 > 解决方案 > 如何从 Android 的周日开始从 Sql-lite 中仅检索 1 周的数据?

问题描述

下面是我的代码:

表创建:

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);
    }

检索 1 周数据的查询:

private Cursor getAllCurrentData()
    {
        String[] selectArg = new String[]{};
        return db.query(Db_Contract.Db_Fieds.TABLE_NAME,
                null ,
                Db_Contract.Db_Fieds.DATE+ "= date('now', 'weekday 0', '-7 days')",
                selectArg,
                null,
                null,
                Db_Contract.Db_Fieds.TIMESTAMP);
    }

问题是我无法使用上述查询检索 1 周。请告诉我我在做什么错误。

提前致谢

标签: androidsqlsqliteandroid-sqlite

解决方案


对于仅检索 1 周的数据,我们可以使用以下查询。这将获得过滤后的数据。

SELECT * FROM myTable WHERE DATE(timeStamp) >= DATE('now', 'weekday 0', '-7 days')

在我们的场景中,您可以使用

Db_Contract.Db_Fieds.DATE+ ">= date('now', 'weekday 0', '-7 days')"

您必须使用大于等于的运算符,这将显示当前工作日数据。您只使用了等于,这将显示一周开始的第一天数据。

我希望这能帮到您 !


推荐阅读