dazle
@dazle
Хороший электрик, но в душе программист

Мне нужно сделать сортировку по дате добавления, но запрос ORDER BY `data` DESC сортирует неправильно, почему?

В бд mysql есть таблица с песнями и у каждой есть дата добавления, вот структура таблицы:
data timestamp CURRENT_TIMESTAMP (те которые заполнены)
и сохраняется в виде 2019-06-18 00:00:00 при нажатии выдает календарь, почему я не могу сортировать эту колонку по дате добавления? например запрос:
$res = mysql_query("SELECT idvol,reyting,name,zanr,vol,file,kto,DATE_FORMAT(data,'%d %M %Y') AS data FROM `rus` ORDER BY `data` DESC ");
cсортируется только первые цифры в таблице т.е например сначала идет 30 мая потом 19 июня потом 10 мая потом 9 июня. И если так нельзя есть ли другой вариант сортировки по дате?
  • Вопрос задан
  • 343 просмотра
Решения вопроса 1
@kisaa
Попробуйте поменять на
DATE_FORMAT(data,'%d %M %Y') AS data_sorted
потому что сейчас у вас именно в том порядке, как вы форматируете дату, и сортирует.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
samodum
@samodum
Какой вопрос - такой и ответ
Я бы хранил дату в unixtime timestamp , то есть bigint или int. Проще обрабатывать, сортировать, делать пейджинг, работать с таймзонами, избегаем проблемы с локализацией, да и машина быстрее и охотнее работает с целыми числами. Перевод в string или datetime делал бы только при выводе данных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы