ORDER BY не работает с DATE_FORMAT

ORDER BY не работает с DATE_FORMAT

Извлекаю из базы дату (формат date) методом
PHP:
"SELECT column1, column2..., DATE_FORMAT(column10, '%d-%m-%Y') AS column10 FROM t1 WHERE ... ORDER BY column10 ASC";
Даты сортируются по id (по первому полю).

Как их вывести в хронологическом порядке?
 

Yurik

/dev/null
DATE_FORMAT(column10, '%d-%m-%Y') AS column10
напиши так:

DATE_FORMAT(column10, '%d-%m-%Y') AS other FROM t1 WHERE ... ORDER BY column10 ASC";
 
Супер, работает. Спасибо Юрик!

А я пробовал наоборот - не работало
DATE_FORMAT(column10, '%d-%m-%Y') AS other FROM t1 WHERE ... ORDER BY other ASC";
 

Demiurg

Guest
попробуй отсортируй по алфавиту

10-01-2003
12-03-2001
11-02-2002

и подумай почему у тебя не сортировалось в хронологическом порядке.
 
попробуй отсортируй
Понял, понял.

Поэтому, я думаю, в мускуле даты так и расположены Y-M-D.
Я, кстати, так и именую однотипные файлы, если их много и они связаны с датами:
filename20031005...
 

Апельсин

Оранжевое создание
> Поэтому, я думаю, в мускуле даты так и расположены Y-M-D.

они не поэтому так расположенны.

Результат DATE_FORMAT() - это строка, соответственно и сортируется результат как строка.
 

Popoff

popoff.donetsk.ua
SELECT column1, column2..., DATE_FORMAT(column10, '%d-%m-%Y') AS column10 FROM t1 WHERE ... ORDER BY t1.column10 ASC
 
SELECT column1, column2..., DATE_FORMAT(column10, '%d-%m-%Y') AS column10 FROM t1 WHERE ... ORDER BY t1.column10 ASC
Тоже вариант. Главное, я так понял, чтобы имена AS name (строка) и ORDER BY column10 (дата) не имели бы одинаковое написание, поскольку если они одинаковые, сортируется строка, а не дата.
 
Сверху