2013-08-18 4 views
0

У меня есть большой список дат формата dd-mm-yyyy. Итак, я хочу заказать: год, затем по месяцам, а затем и по дню.MySQL сортировка по году/месяцу/дню

Дата и месяц находятся в одном поле, а год - это другое поле.

я сейчас: ORDER BY table.year ASC, table.date ASC

В результате список заказа на год, а потом дни.
Как разделить/удалить формат dd-mm и сначала отсортировать по месяцам перед сортировкой по дням?

Same record:  
date | year 
dd-mm | yyyy 

ответ

2

основан на вашем примере вы можете отсортировать записи, как это,

ORDER BY STR_TO_DATE(CONCAT(year, '-', date), '%Y-%d-%m') ASC 
0

Как мне известно, что лучше использовать одно поле типа даты, вместо того, разделите два поля на дату-месяц и год, так как вы можете легко отсортировать результаты.

В соответствии с вашим запросом дата-месяц может быть удалена с использованием функции ПРАВО (функция date-monthfield, 2). Это выбирает месяц, который находится справа.

Запрос будет:

select RIGHT(date-monthfield, 2) from table ORDER BY date-monthfield ASC; 

Надеется, что это помогает.