Dan*_*iel 3 sql database android sql-order-by android-room
我正在开发一个应用程序,Dates在房间数据库中输入为Strings,SimpleDateFormat固定为'%d/%m/%Y %H:%M:%S'(例如“26/12/2018 10:33:31”)。
在不改变数据库结构的情况下,我想查询一些按日期排序的结果。这应该看起来像这样(在 a 中Dao):
@Query("SELECT * FROM results ORDER BY stringToDate(startTime) DESC LIMIT :count")
List<Results> getLast(int count);
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会引发编译错误:“没有这样的函数:stringToDate”,无论该函数是否存在,即使它以适当的形式注释为 TypeConverter。
此外,由于 String 被接受为 Room 类型,我不确定我可以在这里使用 TypeConverter。
有什么办法可以Date在String不修改数据库结构的情况下订购吗?
小智 5
尝试:
@Query("SELECT * FROM results ORDER BY strftime('%Y-%d-%m-%Y', startTime) DESC LIMIT :count")
Run Code Online (Sandbox Code Playgroud)
确保传递给 strftime 的格式与您的时间格式相匹配。
参考格式可以在这里找到:https : //www.tutorialspoint.com/sqlite/sqlite_date_time.htm