hummingbird
@hummingbird

Как сортировать список, взятый из БД, по месяцу и дню?

В БД имеются пользователи с датой рождения:
1990-05-25
1987-02-04
1994-07-13

Я делаю вывод списка так:
SELECT * FROM users WHERE bd!='0' ORDER BY DATE_FORMAT(`bd`, '%Y-%m-%d') DESC


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

Помогите, пожалуйста, исправить это.
  • Вопрос задан
  • 4564 просмотра
Пригласить эксперта
Ответы на вопрос 2
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
1. Если ты хочешь отсортировать именно по месяцу и дню без года, то какого чёрта добавляешь в шаблон форматирования даты %Y?

2. Если же ты сортируешь по полной дате и поле bd имеет тип DATE, DATETIME. TIMESTAMP и т.п. (т.е. тип, предназначенный для хранения даты) то никаких извращений с DATE_FORMAT не требуется - просто ORDER BY bd DESC.

3. Для ситуации, когда поле не заполнено, в SQL если специальное значение NULL. Костыли в виде bd!='0' - ещё один бред.
Ответ написан
webdisigner
@webdisigner
не DESC а ASC
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы