sqlite - 获取今天的所有条目

sqlite - get all entries from today

我有一个带有 sqlite 数据库的 android 应用程序,其中有一列以 unix 时间格式 (DateTime().getMillis() / 1000) 保存条目创建日期。

我要的很简单,获取今天的所有条目。

明确地说,我指的是所有大于今天 00:00:00 的条目(昨天午夜刚过)。

我想我的时区也应该在查询的某个地方,因为 unix 时间是 UTC。

String sql = "SELECT * from Table1 where myDate = (select max(myDate) from Table1 WHERE myDate < DATE('now') )";
Cursor mycursor = db.rawQuery(sql);

我不确定只检查一次,它可能有效!

请检查此代码

WHERE CurrentDate BETWEEN DATE('now') AND DATE('now', '+1 day')

当前 Unix 时间戳可以通过以下方式计算:

strftime('%s', 'now')

要转到一天的开始,请添加 modifier:

strftime('%s', 'now', 'start of day')

然而,这里使用的是UTC时区的00:00:00,所以你必须将时间戳转换为本地时区,转到那个日期的开始,并将其转换回来:

strftime('%s', 'now', 'localtime', 'start of day', 'utc')

strftime returns一个字符串,所以你应该把它的结果转换成一个数字:

... WHERE EntryCreationDate >= 0 + strftime(...)
SQLiteDatabase db=getReadableDatabase();
String sql=<b>"SELECT * FROM water_intake where my_date >= date('now', 'localtime')";
cursor = db.rawQuery(sql,null);

这是为了从 table(water_intake) 获取所有今天的数据,其中 my_date 是我数据库中日期的列。
localtime 我在某处看到过,所以我尝试获取了我想要的所有今天的数据。