Android 如何从SQLite获取最近3小时的数据

Android 如何从SQLite获取最近3小时的数据,android,sql,select,timestamp,Android,Sql,Select,Timestamp,我正在使用当前系统时间在表中插入数据,如 System.currentTimeMillis()。所以,在获取数据时,我只需要获取最后3小时的数据 下面的链接对我没有帮助。因为此链接使用的是我没有的特定日期格式。 这是我的问题,但似乎不起作用 SELECT * FROM Table1 where timestamp >= datetime('now','-3 hours') 其中时间戳是插入时的当前系统时间 请给我任何参考或提示 可能还有其他方法。但我想这对你会有用的 SELE

我正在使用当前系统时间在表中插入数据,如
System.currentTimeMillis()
。所以,在获取数据时,我只需要获取最后3小时的数据

下面的链接对我没有帮助。因为此链接使用的是我没有的特定日期格式。

这是我的问题,但似乎不起作用

SELECT * FROM Table1 where timestamp >= datetime('now','-3 hours')    
其中时间戳是插入时的当前系统时间


请给我任何参考或提示

可能还有其他方法。但我想这对你会有用的

 SELECT * FROM Table1 where timestamp >= (System.currentTimeMillis()-108000000)
从当前时间中减去3小时,然后搜索比这更大的时间。

尝试以下方法:

 SELECT * FROM Table1 where julianday(timestamp) >=  (julianday('now')-108000000)

您可以使用以下命令获得3小时后的时间戳

Calendar 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')

查找3小时前的时间毫秒,然后执行查询以获取时间戳大于此值的值。如果希望sqlite提供过去的时间戳,请使用
sqlite3
工具播放一段时间,并从中执行示例,您将发现
选择strftime(“%s”,“now”)最接近您想要的,其余的是您的家庭作业考虑时区,否则结果可能不准确
SELECT*FROM table 1,其中datetime(timestamp)>=datetime('now','-3小时,'localtime')请参阅