我有一个带有sqlite数据库的Android应用程序,其中有一个列以 unix-time格式(DateTime().getMillis() / 1000
)保存条目创建日期。
我想要的是非常简单,从今天开始获取所有条目。
为了清楚起见,我的意思是所有条目都大于今天00:00:00(就在昨天的午夜之后)。
我想我的时区也应该放在查询中,因为unix-time是UTC。
答案 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天')之间的当前日期