SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 17.01.2010 19:34:18

tinisto
Участник
Зарегистрирован: 17.01.2010
Сообщений: 5

сортировка по дате

преобразовал дату в нормальный вид

SELECT DATE_FORMAT(date,'%d.%m.%Y') AS date from tinisto ORDER BY date desc

дата сортируется некорректно - вначале по дню, потом месяц, затем год. Нужно наоборот, сохраняя вид %d.%m.%Y

Неактивен

 

#2 17.01.2010 22:28:31

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: сортировка по дате

SELECT DATE_FORMAT(`date`,'%d.%m.%Y') AS d from tinisto ORDER BY d desc

Неактивен

 

#3 17.01.2010 23:05:34

tinisto
Участник
Зарегистрирован: 17.01.2010
Сообщений: 5

Re: сортировка по дате

к сожалению, это не помогло. Сортировка теперь такая - публикуются вначале старые, потом новые датированные тексты. Нужно же наоборот. Что интересно - поставил asc вместо desc - ничего не поменялось. К тому же теперь, вообще не видно даты. только точка вместо даты.

Неактивен

 

#4 17.01.2010 23:11:20

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: сортировка по дате

Сорри, описался.

SELECT DATE_FORMAT(`date`,'%d.%m.%Y') AS d from tinisto ORDER BY `date` desc

Неактивен

 

#5 18.01.2010 01:29:49

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: сортировка по дате

Плохо давать колонкам SELECT'ов псевдонимы, совпадающие с именами колонок таблицы, если потом надо сортировать или группировать по ним - получается путаница.

Неактивен

 

#6 18.01.2010 07:55:37

tinisto
Участник
Зарегистрирован: 17.01.2010
Сообщений: 5

Re: сортировка по дате

Сортировка работает верно в этом случае, но дата не отображается (только точка).

Неактивен

 

#7 18.01.2010 08:47:37

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: сортировка по дате

test >SELECT DATE_FORMAT(`date`,'%d.%m.%Y') AS d from a ORDER BY `date` DESC;
+------------+
| d          |
+------------+
| 17.01.2010 |
| 16.01.2010 |
| 17.12.2009 |
| 17.01.2009 |
+------------+
4 rows in set (0.02 sec)


Вы хотите сказать, что при замене в запросе только псевдонима у вас изменяется отображение даты (в одном случае правильно, в другом точка)? Если так, то приведите оба запроса с результатом выборки.

Неактивен

 

#8 18.01.2010 08:58:50

tinisto
Участник
Зарегистрирован: 17.01.2010
Сообщений: 5

Re: сортировка по дате

SELECT DATE_FORMAT( 'date', '%d.%m.%Y' ) AS d
FROM a
ORDER BY 'date' DESC
LIMIT 0 , 30

+--------+
|   d       +
----------
|    null   |
|    null   |
|    null   |
|    null   |
+--------+

Ошибка видна. Как это теперь исправить?
Поле date - тип date, Ноль - стоит null. Ставлю not null. Все равно null возвращается.

Неактивен

 

#9 18.01.2010 09:00:44

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: сортировка по дате

'date' - это строка
`date` - это колонка. Имя колонки взято в обратные кавычки, так как date является ключевым словом. Вообще это плохая практика давать колонкам или таблицам имена, являющиеся ключевыми словами.

В вашем случае попытка вычислить время от строковой константы приводит к закономерному результату.

Неактивен

 

#10 18.01.2010 11:29:21

tinisto
Участник
Зарегистрирован: 17.01.2010
Сообщений: 5

Re: сортировка по дате

Vasya, благодарю Вас! Все получилось.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson