【问题标题】:Android Room - Fails to order by dateAndroid Room - 无法按日期订购
【发布时间】:2018-04-23 13:07:24
【问题描述】:

我的模型片段:

@NonNull
@ColumnInfo(name = "date")
@TypeConverters(TimestampConverter::class)
var date: Date? = null

我的转换器:

class TimestampConverter {
    @TypeConverter
    fun fromTimestamp(value: Long?): Date? {
        return if (value == null) null else Date(value)
    }

    @TypeConverter
    fun dateToTimestamp(date: Date?): Long? {
        return date?.time
    }
}

我的查询:

@get:Query("SELECT * FROM my_table ORDER BY date(date) DESC")
val all: LiveData<List<MyModel>>

知道为什么 Room 没有对我的数据进行排序吗?谢谢。

【问题讨论】:

  • 如果日期是表格中的时间戳(以毫秒为单位),为什么不直接使用ORDER BY date DESC
  • 嗨!它有效。请创建一个答案,以便我接受它:)。任何想法为什么它不能那样工作?
  • 很确定 date() 寻找的是日期字符串而不是时间戳

标签: android sqlite android-room


【解决方案1】:

在您的查询中仅将其设为ORDER BY date DESC

喜欢

@get:Query("SELECT * FROM my_table ORDER BY date DESC")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 2015-09-07
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    相关资源
    最近更新 更多