Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с сортировкой даты
 
 автор: Sturmvogel   (09.02.2008 в 20:34)   письмо автору
 
 

Проблема такая:
Добавляю новости в базу данных. При добавлении выбираются месяц и год новости. Из способа сортировки при таком добавлении придумал только то, чтобы номер месяца сливать с годом и сортировать по получивш. числу, т.е.:
Март 2007 -- 32007
Январь 2008 -- 12008
Февраль 2006 -- 22006
и т.д.

Так вот, возникла проблема: новости сортируются не так, как нужно.

В базе данных MySQL столбец, по которому сортируем называется news_pos(в нем лежат эти 32007, 12008, 22006).
Но при SQL запросе сортировать должным образом не получается.... Т.е. я пишу:
ORDER BY news_pos DESC

Но как я заметил из результатов, сортировка, похоже, происходит только по первому числу...

   
 
 автор: Киналь   (09.02.2008 в 22:40)   письмо автору
 
   для: Sturmvogel   (09.02.2008 в 20:34)
 

А если склеивать наоборот - ГодМесяц? Т.е. 200703, 200801, 200602.

   
 
 автор: Sturmvogel   (09.02.2008 в 22:52)   письмо автору
 
   для: Киналь   (09.02.2008 в 22:40)
 

Как раз собирался попробовать....
Но, не думаю, что что-то изменится)

   
 
 автор: Trianon   (09.02.2008 в 22:53)   письмо автору
 
   для: Sturmvogel   (09.02.2008 в 20:34)
 

Старшие (более значащие) разряды должны быть расположены левее младших (менее значащих)

   
 
 автор: Sturmvogel   (09.02.2008 в 23:15)   письмо автору
 
   для: Trianon   (09.02.2008 в 22:53)
 

то есть 200801, а не 12008?)

   
 
 автор: Unkind   (09.02.2008 в 23:43)   письмо автору
 
   для: Sturmvogel   (09.02.2008 в 23:15)
 

Номер месяца должен быть с ведущим нулем. А почему Вы не используете, например, тип DATE?

   
 
 автор: mihdan   (10.02.2008 в 00:49)   письмо автору
 
   для: Sturmvogel   (09.02.2008 в 20:34)
 

Отчего вам не использовать стандартные для дат типы полей (DATE, DATETIME, TIMESTAMP..) тогда сортировка при выборке будет проводится просто


ORDER BY `date` DESC

   
 
 автор: Sturmvogel   (10.02.2008 в 01:31)   письмо автору
 
   для: mihdan   (10.02.2008 в 00:49)
 

В таком случае будет браться текущая дата на момент добавления.

   
 
 автор: mihdan   (10.02.2008 в 01:34)   письмо автору
 
   для: Sturmvogel   (10.02.2008 в 01:31)
 

Плохо вы знаете sql. Что у вас записывается в поле при добавлении новости? Нужно писать, например timestamp текущий (NOW()). Как вы хотите вывести новости? В обрабном порядке по дате, тогда ORDER BY `date` DESC. Или вы собираетесь что-то другое сделать?

>В таком случае будет браться текущая дата на момент добавления.
Будет браться дата, которая там записана. А вам то что нужно?

   
 
 автор: Sturmvogel   (10.02.2008 в 12:38)   письмо автору
 
   для: Sturmvogel   (09.02.2008 в 20:34)
 

так, проблема, вроде, решена.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования