在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')"
必须使用大于等于的运算符,这将显示当前周数数据。您只使用了等于的,这将显示周初第一天的数据
我希望这对你有帮助