Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 按日期以字符串形式订购房间结果_Android_Sql_Database_Sql Order By_Android Room - Fatal编程技术网

Android 按日期以字符串形式订购房间结果

Android 按日期以字符串形式订购房间结果,android,sql,database,sql-order-by,android-room,Android,Sql,Database,Sql Order By,Android Room,我正在开发一个应用程序,日期作为字符串输入房间数据库,并将简化格式固定为'%d/%m/%Y%H:%m:%S'(例如“26/12/2018 10:33:31”) 在不改变数据库结构的情况下,我想查询一些按日期排序的结果。这可能看起来像这样(在Dao中): @Query(“按stringToDate(startTime)描述限制:计数从结果顺序中选择*) 列表getLast(整数计数); 不幸的是,这会引发编译错误:“没有这样的函数:stringToDate”,不管函数是否存在,即使它以适当的形式

我正在开发一个应用程序,
日期
作为
字符串
输入房间数据库,并将
简化格式
固定为
'%d/%m/%Y%H:%m:%S'
(例如“26/12/2018 10:33:31”)

在不改变数据库结构的情况下,我想查询一些按日期排序的结果。这可能看起来像这样(在
Dao
中):

@Query(“按stringToDate(startTime)描述限制:计数从结果顺序中选择*)
列表getLast(整数计数);
不幸的是,这会引发编译错误:“没有这样的函数:stringToDate”,不管函数是否存在,即使它以适当的形式被注释为TypeConverter

此外,由于字符串被接受为房间类型,我不确定是否可以在这里首先使用TypeConverter


有没有什么方法可以在不修改数据库结构的情况下按
Date
作为
String
进行订购?

您可以尝试将
stringToDate(startTime)
更改为
datetime(startTime)

能否提供startTime对象的示例?

请尝试:

@Query("SELECT * FROM results ORDER BY strftime('%Y-%d-%m-%Y', startTime) DESC LIMIT :count")
确保传递给strftime的格式与您的时间格式匹配

可在此处找到参考格式:

这应该是一条评论,而不是一个答案-如果你想询问更多关于这个问题的信息-请询问我的评论我很抱歉,我知道我没有足够的分数发表评论
strftime
的目的与我想做的相反:它将ISO日期转换为格式化字符串。但令人惊讶的是,这一半是有效的,因为它是作为日期订购的(在中不是这种情况),但它不会考虑
DESC
。请看一下这个链接@DanChaltiel
@Query("SELECT * FROM results ORDER BY strftime('%Y-%d-%m-%Y', startTime) DESC LIMIT :count")