mysql ORDER BY поле типа datetime не сортируется должным образом - PullRequest
1 голос
/ 21 мая 2010

В моей базе данных есть поле, в котором хранится дата и время добавления элемента в базу данных. Если я хочу отсортировать элементы в обратном хронологическом порядке, я ожидаю, что выполнение ORDER by date_added DESC поможет. Но это, похоже, не работает. Я также пытался ORDER by UNIX_TIMESTAMP(date_added), но это все равно не сортировало результаты, как я ожидал. У меня также есть поле автоинкремента, которое я могу использовать для сортировки элементов, поэтому я буду использовать его, но мне любопытно, почему ORDER by datetime вел себя не так, как ожидалось.

есть идеи?

Запрос выглядит так:

SELECT file_name, date_added
FROM table WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date_added 
ORDER BY date_added DESC

1 Ответ

0 голосов
/ 06 июня 2012

У меня была та же проблема, когда я не получал правильную сортировку для поля даты и времени.

Я решил свою проблему, используя псевдоним, имя которого отличалось от имени столбца datetime.

Например, см. Мой рабочий запрос:

SELECT id,name,comments,date_format(created_on, '%d, %M. %Y') created_oon FROM comments WHERE phone_number='907-200-6304' ORDER BY created_on DESC;
...