sqlite - 从今天获取所有条目

时间:2016-10-10 08:55:53

标签: android sql sqlite android-sqlite unix-timestamp

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

我想要的是非常简单,从今天开始获取所有条目。

为了清楚起见,我的意思是所有条目都大于今天00:00:00(就在昨天的午夜之后)。

我想我的时区也应该放在查询中,因为unix-time是UTC。

4 个答案:

答案 0 :(得分:3)

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

strftime('%s', 'now')

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

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

但是,这会在UTC时区使用00:00:00,因此您必须将时间戳转换为本地时区,转到 日期的开头,并将其转换回来:

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

并且strftime返回一个字符串,因此您应该将其结果转换为数字:

... WHERE EntryCreationDate >= 0 + strftime(...)

答案 1 :(得分:0)

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

这是用于从表(water_intake)中获取今天的所有数据,其中my_dat e是数据库中Date的列。
localtime我在某处见过,所以我尝试并获取了我想要的所有今天的数据。

答案 2 :(得分:-1)

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

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

答案 3 :(得分:-2)

请检查此代码

当前日期(“现在”)和日期('现在','+ 1天')之间的当前日期