SQLite Сортировать по дате1530019888000

53

Каждая запись в моей базе данных SQLite содержит поле, содержащее Date, хранящееся как string в формате 'yyyy-MM-dd HH:mm:ss'.

Можно ли запросить базу данных, чтобы получить запись, содержащую самую последнюю дату, пожалуйста?

  • 7
    Вы должны хранить дату в миллисекундах и конвертировать каждый раз, когда вам нужно ее отобразить. Это облегчит сортировку и т. Д.
Теги:
sqlite3
android-sqlite
sql-order-by

5 ответов

100
Лучший ответ

вы можете сделать это, как это

SELECT * FROM Table ORDER BY date(dateColumn) DESC Limit 1
  • 45
    обратите внимание, что если вы хотите сделать заказ по дате и времени, вам нужно использовать datetime() intead of date()
  • 0
    это работает хорошо, спасибо, чувак!
Показать ещё 1 комментарий
34

Для меня у меня был мой запрос таким образом, чтобы решить мою проблему.

select *  from Table order  by datetime(datetimeColumn) DESC LIMIT 1

Поскольку я сохранял его как столбец даты и времени не даты

  • 3
    Кроме того, функция date () возвращает дату в следующем формате: ГГГГ-ММ-ДД. Функция time () возвращает время в формате ЧЧ: ММ: СС. Функция datetime () возвращает «ГГГГ-ММ-ДД ЧЧ: ММ: СС».
  • 0
    Какую разницу вы внесли в свой ответ, чем предыдущий? @ Ахмад Барака
Показать ещё 1 комментарий
2

Вам нужно преобразовать его в отметку времени unix, а затем сравнить их:

SELECT * FROM data ORDER BY strftime('%s', date_column) DESC

Но это может быть довольно медленно, если есть много строк. Лучшим подходом было бы сохранить временную метку Unix по умолчанию и создать индекс для этого столбца.

1

Вы можете преобразовать свой столбец "sent_date_time" в формат yyyy-MM-dd, а затем упорядочить по дате

1 ) substr(sent_date_time,7,4)||"-"||substr(sent_date_time,1,2)||"-"||substr(sent_date_time,4,2) as date
2) order by date desc
0

Когда вы уверены, что формат текстового поля yyyy-MM-dd HH:mm:ss (например: 2017-01-02 16:02:55), So It работает для меня просто:

SELECT * FROM Table ORDER BY dateColumn DESC Limit 1

Без дополнительной функции даты!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню