我在表中插入当前系统时间的数据
System.currentTimeMillis()
。因此,在获取数据时,我只需要花费最近3个小时的数据。
以下链接无法帮助我。因为这个链接使用了我没有的具体日期格式 Getting data according to last hours from sqlite
这是我的查询,但似乎无法正常工作。
SELECT * FROM Table1 where timestamp >= datetime('now','-3 hours')
其中时间戳只是插入时的当前系统时间。
请给我任何参考或提示。
答案 0 :(得分:3)
您可以使用以下
获取时间3小时的TimeStampCalendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR, -3);
Date threeHourBack = cal.getTime();
然后您可以将threeHourBack.getTime()
传递给查询。
或者您可以在SQLite中执行此操作
SELECT * FROM Table1 where datetime(timestamp) >=datetime('now', '-3 Hour')
答案 1 :(得分:0)
可能还有其他方法。但我认为这对你有用。
SELECT * FROM Table1 where timestamp >= (System.currentTimeMillis()-108000000)
从当前时间减去3小时,并搜索比此更重的时间。
答案 2 :(得分:0)
试试这个:
SELECT * FROM Table1 where julianday(timestamp) >= (julianday('now')-108000000)