【发布时间】:2020-11-25 10:18:11
【问题描述】:
您好,我有一个查询,我根据 product_end_date 订购产品列表。我只想获取结束日期大于或等于今天的产品列表,我该如何在 Room 中做到这一点
这是我的查询
@Query("SELECT * FROM product_data_table ORDER BY product_end_date ASC")
fun getAllProductsOrderByEndDate(): LiveData<List<Product>>
我试过了,但是没有用
@Query("SELECT * FROM product_data_table WHERE product_end_date >= date('now') ORDER BY product_end_date ASC")
fun getAllProductsOrderByEndDate(): LiveData<List<Product>>
实体
@Entity(tableName = "product_data_table")
data class Product(
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "product_id")
var id: Int,
@ColumnInfo(name = "product_name")
var name: String,
@ColumnInfo(name = "product_catagory")
var catagory: String,
@ColumnInfo(name = "product_end_date")
var end_date: Date
)
我不确定如何在 where 子句中使用 todays date
请建议如何解决这个问题
非常感谢您的帮助
谢谢 回复
【问题讨论】:
-
如果你也为 Date 类添加你的
Converter会很好 -
@i30mb1 我不使用任何转换器类
-
那么
end_date是如何从对象转化为列的呢? -
你认为 date('now') 应该如何工作?对于房间查询来说,这没什么。您无法比较查询中的日期。您应该在存储库或视图模型或用于接收数据的任何内容中进行一些检查。
-
@Viktor OK 会这样做
标签: android sql kotlin android-room