Как отобразить недавно добавленные данные по порядку даты в MySql? - PullRequest
1 голос
/ 10 апреля 2019

Я хочу отсортировать таблицу по порядку дат, чтобы недавно добавленные данные были в верхней части таблицы.

Я использовал запрос для сортировки как:

select date from register_table order by date desc.

В настоящее время данные таблицы отображаются как:

date

02.04.2019
05.04.2019
09.04.2019
10.04.2019
06.02.2019
23.01.2019
11.01.2019

Я ожидаю, что моя таблица будет отображаться как:

date

10.04.2019
09.04.2019
05.04.2019
02.04.2019
06.02.2019
23.01.2019
11.01.2019

Как отобразить данные в порядке дат?

Ответы [ 2 ]

1 голос
/ 10 апреля 2019

Ваша фундаментальная проблема не в сохранении даты как date.Вы должны это исправить.

Чтобы запрос работал, используйте:

order by str_to_date(date, '%m.%d.%Y')

Чтобы исправить данные, вы можете сделать:

update register_table
    set date = str_to_date(date, '%m.%d.%Y');

alter table register_table
    modify date date;

Вы можете увидеть, какэто работает здесь .

0 голосов
/ 10 апреля 2019

Я не знаю, почему ваша дата хранится так, но вот, попробуйте:

SELECT date FROM date ORDER BY STR_TO_DATE(REPLACE(date,'.','-'),'%d-%m-%Y') DESC;

Если вы хотите увидеть, что именно происходит, запустите этот запрос:

SELECT date,STR_TO_DATE(REPLACE(date,'.','-'),'%d-%m-%Y') FROM date;

Если вы все еще не совсем понимаете, обратитесь к функция MySQL STR_TO_DATE и функция MySQL REPLACE .

...