Результаты поиска номеров по дате в виде строки - PullRequest
0 голосов
/ 22 февраля 2019

Я работаю над приложением, в котором Dates вводится в базу данных комнат как Strings, с SimpleDateFormat, установленным на '%d/%m/%Y %H:%M:%S' (например, "26/12/2018 10:33:31").

Не изменяя структуру базы данных, я бы хотел запросить некоторые результаты, упорядоченные по дате.Вероятно, это должно выглядеть примерно так (внутри Dao):

@Query("SELECT * FROM results ORDER BY stringToDate(startTime) DESC LIMIT :count")
List<Results> getLast(int count);

К сожалению, это приводит к ошибке компиляции: "no such function: stringToDate", независимо от того, существует ли функция, даже если онааннотировать как TypeConverter в надлежащей форме.

Более того, поскольку String принимается как тип помещения, я не уверен, что смогу использовать TypeConverter здесь для начала.

Есть ли способ, которым яможно было бы заказать Date как String без изменения структуры базы данных?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Попробуйте:

@Query("SELECT * FROM results ORDER BY strftime('%Y-%d-%m-%Y', startTime) DESC LIMIT :count")

Убедитесь, что формат, переданный в strftime, соответствует вашему формату времени.

Справочные форматы можно найти здесь: https://www.tutorialspoint.com/sqlite/sqlite_date_time.htm

0 голосов
/ 22 февраля 2019

Можете ли вы попробовать изменить stringToDate(startTime) на datetime(startTime)?

Можете ли вы предоставить образец объекта startTime?

...