Как реализовать SUM (), DAY (), MONTH () и YEAR () от MySQL до ROOM

Hari Nugroho спросил: 28 марта 2018 в 02:08 в: android

У меня есть этот код в 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>

Graph.kt

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

, но он возвращает ошибку no such function: DAY, как я могу ее исправить? note:

1 ответ

Есть решение
Eric Bachhuber ответил: 28 марта 2018 в 04:44

Android (и Room) используют SQLite, а не MySQL, поэтому вам нужно будет структурировать свои запросы с помощью функций, доступных в SQLite. Вы можете сделать нечто похожее с функциями SQLite date() и datetime(), см. Https://www.sqlite.org/lang_datefunc.html для получения дополнительной информации.