以下是我的代码:
表格创建:
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周。请告诉我我在做什么错误。
先谢谢
答案 0 :(得分: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 :(得分:1)
仅检索1周数据我们可以使用以下查询。这将获得过滤数据。
SELECT * FROM myTable WHERE DATE(timeStamp) >= DATE('now', 'weekday 0', '-7 days')
在我们的场景中,您可以使用
Db_Contract.Db_Fieds.DATE+ ">= date('now', 'weekday 0', '-7 days')"
您必须使用大于等于的运算符,这将显示当前工作日数据。您仅使用等于,这将显示星期第一天数据的开始。
我希望这会对你有所帮助!