Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中,如何从周日开始从Sq lite中仅检索1周的数据?_Android_Sql_Sqlite_Android Sqlite - Fatal编程技术网

在Android中,如何从周日开始从Sq lite中仅检索1周的数据?

在Android中,如何从周日开始从Sq lite中仅检索1周的数据?,android,sql,sqlite,android-sqlite,Android,Sql,Sqlite,Android 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,"

下面是我的代码:

表格创建:

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周。请告诉我我犯了什么错误

提前谢谢

Db_Contract.Db_Fieds.DATE+ "= date('now', 'weekday 0', '-7 days')",
检索
DATE
等于
DATE()
表达式的行。但您似乎希望所有
DATE
大于或等于表达式的行。尝试:

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

请注意
=
运算符与
=
运算符的比较。

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

SELECT * FROM myTable WHERE DATE(timeStamp) >= DATE('now', 'weekday 0', '-7 days')
在我们的场景中,您可以使用

Db_Contract.Db_Fieds.DATE+ ">= date('now', 'weekday 0', '-7 days')"
必须使用大于等于的运算符,这将显示当前周数数据。您只使用了等于的,这将显示周初第一天的数据

我希望这对你有帮助