android - 如何从 MySQL 到 ROOM 实现 SUM()、DAY()、MONTH() 和 YEAR()

标签 android kotlin android-room

我在 SQL 中有这段代码:

SELECT SUM(number), DAY(date) FROM conting GROUP BY DAY(date) ORDER BY DAY(date) ASC

然后我需要在房间里转换:

@Query("SELECT SUM(number), DAY(date) FROM Records GROUP BY DAY(date) ORDER BY DAY(date) ASC") fun getResumeData(): List<Graph>

图.kt

data class Graph (
    @ColumnInfo(name = "DAY(date)") var index: Int,
    @ColumnInfo(name = "SUM(number)") var value: Int
)

但它返回错误 no such function: DAY 我该如何解决? 注意:

this is my sql database

this is my sql query result

最佳答案

Android(和 Room)使用 SQLite,而不是 MySQL,因此您需要使用 SQLite 提供的函数来构建查询。您可以使用 SQLite 的 date()datetime() 函数执行类似的操作,请参阅 https://www.sqlite.org/lang_datefunc.html获取更多信息。

关于android - 如何从 MySQL 到 ROOM 实现 SUM()、DAY()、MONTH() 和 YEAR(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49957529/

相关文章:

android - fragment 内的 Kotlin 按钮 onClickListener 事件

java - 使用一个类的最佳方式,内部只更改一个对象 - Kotlin/Android/Java

android - 使用 Itemtouchhelper 更改房间数据库的顺序

android - GestureOverlayView 和 GestureDetector 的性能

Android:将 JSON 转换为 POJO 是正确的方法吗?

安卓倒计时

android - 使用 Android 上的 MVVMLight,如何将参数发送到 ViewModel 上的命令?

kotlin - 什么时候应该使用加号、减号、时间函数而不是 Kotlin 中的运算符?

java - Room Android 实体和 POJO 必须具有可用的公共(public)构造函数

java - 在 Android Room 中我可以循环遍历所有记录吗