android - 如何从 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 周。请告诉我我在做什么错误。
提前致谢
解决方案
对于仅检索 1 周的数据,我们可以使用以下查询。这将获得过滤后的数据。
SELECT * FROM myTable WHERE DATE(timeStamp) >= DATE('now', 'weekday 0', '-7 days')
在我们的场景中,您可以使用
Db_Contract.Db_Fieds.DATE+ ">= date('now', 'weekday 0', '-7 days')"
您必须使用大于等于的运算符,这将显示当前工作日数据。您只使用了等于,这将显示一周开始的第一天数据。
我希望这能帮到您 !
推荐阅读
- asp.net - 尝试在 ASP.NET 中更新数据库时出现“SQL 问题”
- java - 为什么在使用带有 JSON-B 的 Yasson 时需要来自 Glassfish 的 javax.json 作为依赖项?
- python-3.x - 使用 Python 的 Visual Studio 中的 Windows 窗体
- python - 如何从 txt 文件(包含代码)中读取行并确定它是否正确?
- javascript - 如何根据数组的长度显示或隐藏按钮?
- html - 让 Bootstrap 4 导航栏侧边栏扩展到页面的全高
- html - Can I use to achive this?
- html - 父组件中的子属性不会更新
- node-canvas - 如何修复重复的 canvas.toBuffer 或 canvas.createPdfStream 内容
- python - 将嵌套字典值与另一个字典值相乘