获得最近12个小时的SQLite条目

时间:2014-04-30 00:30:26

标签: java android sqlite datetime

我试图从带有android的SQLite数据库中获取最近12个小时的条目。

我想知道这是否可能?

我的日期格式为"yyyy-MM-dd HH:mm:ss.SSS",使用简单的日期格式。

我的表格中有一个CREATED_AT列,类型为TEXT。

我到目前为止:

SELECT * FROM " + ENTRIES_TABLE + " WHERE " + CREATED_AT + ..."

此外,CREATED_AT列是TEXT而不是日期时间类型是否重要?

由于

2 个答案:

答案 0 :(得分:4)

SQLite使用dynamic typing;如果列被声明为TEXT或DATETIME或FLUFFY BUNNIES,则无关紧要。

SQLite的日期格式旨在使字符串比较正常工作。 要从时间戳中减去12小时,请使用built-in date functions之一:

SELECT *
FROM Entries
WHERE CreatedAt >= datetime('now', '-12 hours')

(SQLite日期函数默认使用UTC;检查表的值是否使用某些本地时区。)

答案 1 :(得分:0)

作为一个文本领域,你不能做很多事情。实际上,您唯一可以毫不费力地工作的选项是解析数据并手动完成。这条痛苦的路线会直接看到字符串比较,但是如果你在中午之前处理1月1日这会很复杂。

更好的方法,也就是在sqlite中处理日期的最佳方法是使用Unix时间戳。那么选择时间标签大于当前时间减去12小时的任何东西都是一件简单的事情,而且你已经设定了。