Java 获取过去12小时价值的SQLite条目
我试图从一个使用android的SQLite数据库中获取过去12小时的条目 我想知道这是否可能 我的日期格式是使用简单日期格式的“yyyy-MM-dd HH:MM:ss.SSS” 我在表格中创建了一个文本类型的_AT列 我已经做到了这一点:Java 获取过去12小时价值的SQLite条目,java,android,sqlite,datetime,Java,Android,Sqlite,Datetime,我试图从一个使用android的SQLite数据库中获取过去12小时的条目 我想知道这是否可能 我的日期格式是使用简单日期格式的“yyyy-MM-dd HH:MM:ss.SSS” 我在表格中创建了一个文本类型的_AT列 我已经做到了这一点: SELECT * FROM " + ENTRIES_TABLE + " WHERE " + CREATED_AT + ..." 此外,创建的_AT列是文本而不是日期时间类型是否重要 谢谢作为一个文本字段,你不能做很多事情。事实上,你唯一的选择就是解析数据并
SELECT * FROM " + ENTRIES_TABLE + " WHERE " + CREATED_AT + ..."
此外,创建的_AT列是文本而不是日期时间类型是否重要
谢谢作为一个文本字段,你不能做很多事情。事实上,你唯一的选择就是解析数据并手动操作,这样你就可以一直工作而不费吹灰之力。痛苦的途径是直接查看字符串比较,但如果您在中午之前处理1月1日的事务,那么这会变得复杂 在sqlite中处理日期的更好的方法,实际上也是最好的方法,是使用Unix时间戳。然后,只需选择时间标签大于当前时间减去12小时的任何内容,就可以完成设置。SQLite使用;列是否声明为TEXT、DATETIME或fluffly BUNNIES并不重要 SQLite的日期格式设计为字符串比较可以正常工作。 要从时间戳中减去12小时,请使用以下选项之一:
选择*
从条目
其中CreatedAt>=datetime('now','-12小时')
(SQLite日期函数默认使用UTC;检查表的值是否使用某些本地时区。)如果字符串匹配,则执行
=
操作并不重要,但代码没有正确解释这一点。但这也不是个好主意。如果希望小于
或介于
之间,应考虑使用sqliteINTEGER将在
创建的存储为UNIX时间戳,而不是字符串
。您将使用长变量读取代码中的值。这并不能直接回答您的问题,但有助于将来进行比较。您还应该考虑接受过去问题的答案。相关: