Главная > SQL > Сортировка по месяцам, а не по дате

Сортировка по месяцам, а не по дате

Задача: Есть таблица, со столбцом формата DATETIME, TIMESHTAMP или DATE. По умолчанию сортировка производится по дате. Т.е. год, месяц, дань, час, минута, секунда. Но, надо отсортировать значения например по месяцам. Как? Ответ: Как всегда все гениальное просто - сортировать можно не только по столбцам, но и по результатам обработки. В данном случае можно использовать функцию DATE_FORMAT
ORDER BY DATE_FORMAT(birthday,'%m%d') ASC
так же подойдут функции DAY, MONTH, YEAR
ORDER BY DAY(birthday) ASC, MONTH(birthday) ASC, YEAR(birthday) ASC
Примечание: Если использовать в функции DATE_FORMAT дополнительные символы для разделения значений:
ORDER BY DATE_FORMAT(birthday,'%m-%d') ASC
то сортировка будет производиться не правильно по строковому, а не числовому значению, что не всегда то, что нужно.
1 звезда2 звезды3 звезды4 звезды5 звезд (1 votes, average: 5,00 out of 5)
Загрузка...
  1. айнур
    17 ноября 2015 в 12:45 | #1

    спасибо! коротко и толково))

  1. Пока что нет уведомлений.


восемь − 6 =

Heads up! You are attempting to upload an invalid image. If saved, this image will not display with your comment.