Android 如何获取今天的室内数据库查询

Android 如何获取今天的室内数据库查询,android,sql,kotlin,android-room,Android,Sql,Kotlin,Android Room,您好,我有一个查询,我根据产品结束日期订购产品列表。我只想得到截止日期大于或等于今天的产品列表,我如何在房间里做到这一点 这是我的问题 @Query("SELECT * FROM product_data_table ORDER BY product_end_date ASC") fun getAllProductsOrderByEndDate(): LiveData<List<Product>> 我不知道如何在where子句中使用today

您好,我有一个查询,我根据产品结束日期订购产品列表。我只想得到截止日期大于或等于今天的产品列表,我如何在房间里做到这一点

这是我的问题

@Query("SELECT * FROM product_data_table ORDER BY product_end_date ASC")
    fun getAllProductsOrderByEndDate(): LiveData<List<Product>>
我不知道如何在where子句中使用
todays date

请建议如何修复此问题

非常感谢你的帮助

谢谢
R

将实体类中的
结束日期
存储为Unix时间中的
Long

@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: Long // Changed the type from Date to Long
)
插入产品通行证时
Date()

现在在查询时,获取今天的Unix时间,并将其作为查询函数的参数传递。大概是这样的:

@Query("SELECT * FROM product_data_table WHERE product_end_date >= :endDate")
fun getAllProductsOrderByEndDate(endDate: Long): List<Product>
@Query(“从产品数据表中选择*,其中产品结束日期>=:结束日期”)
有趣的getAllProductsOrderByEndDate(endDate:Long):列表

如果您还为日期添加了
转换器,那就太好了class@i30mb1我不使用任何转换器类当
end\u date
如何从一个对象转换到一个列?您认为date(“now”)应该如何工作?这不适合房间查询。无法比较查询中的日期。您应该在存储库或viewmodel或任何用于接收数据的工具中进行一些检查。@Viktor okay会这样做的
@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: Long // Changed the type from Date to Long
)
@Query("SELECT * FROM product_data_table WHERE product_end_date >= :endDate")
fun getAllProductsOrderByEndDate(endDate: Long): List<Product>