[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как правильно сделать сортировку по дате
Strannik
Добрый день.
В базе даты вида:
столбец period
31.05.2012 23:59:59
30.06.2012 23:59:59
27.05.2012 23:59:59
24.08.2012 23:59:59


Если делать сортировку ORDER by period Desc
то получаю сортировку по дате(по первым двум числам):

31.05.2012 23:59:59
30.06.2012 23:59:59
27.05.2012 23:59:59
24.08.2012 23:59:59

а мне нужно:

24.08.2012 23:59:59
30.06.2012 23:59:59
31.05.2012 23:59:59
27.05.2012 23:59:59

Подскажите как это сделать?



Спустя 8 минут, 14 секунд (31.07.2012 - 15:06) DarkLynx написал(а):
Какой тип столбца?

Спустя 24 минуты, 22 секунды (31.07.2012 - 15:30) kamanch написал(а):
Ну, судя по сортировке, ясно, что vchar
Нужен date и иже с ним.

Спустя 2 минуты, 59 секунд (31.07.2012 - 15:33) DarkLynx написал(а):
Цитата (kamanch @ 31.07.2012 - 13:30)
Ну, судя по сортировке, ясно, что vchar
Нужен date и иже с ним.

Я и написал вопрос к тому что бы человек сам допер до этого wink.gif

Спустя 39 минут, 41 секунда (31.07.2012 - 16:13) Strannik написал(а):
я понял, просто не помню как правильно указать в поле тип datetime(

если указываю тип DATETIME, то после дампа получаю строки 0000-00-00 00:00:00

Почему так?

Спустя 3 минуты, 39 секунд (31.07.2012 - 16:16) kamanch написал(а):
Потому что у тебя строка не подходит под шаблон DATETIME.
Преобразуй данные в столбце сначала к виду YYYY-MM-DD h:m:s , а потом уже меняй тип столбца на DATETIME

Спустя 2 минуты, 13 секунд (31.07.2012 - 16:19) Strannik написал(а):
это понял, я про другое.
Если мне нужен другой вид (dd-mm-YYYY h:m:s), как это указать в таблице?

Спустя 29 минут, 57 секунд (31.07.2012 - 16:48) DarkLynx написал(а):
При выборке DATE_FORMAT

Спустя 37 минут, 9 секунд (31.07.2012 - 17:26) inpost написал(а):
Хотите прикол... ТС на форуме 3 года и это его уже 3-я тема, где он создал неправильную дату и спрашивает о том, как с ней работать! Ему каждый раз отвечали о том, как правильно это делать!!! Каждый раз объясняли про нормальные форматы дат...
Я в шоке... Странник, ты издеваешься?

Спустя 46 секунд (31.07.2012 - 17:26) inpost написал(а):
DarkLynx
Наивный. Этот вопрос он уже задавал и ему уже показывали про DATE_FORMAT, даже показывали как пользоваться smile.gif

Спустя 47 минут, 11 секунд (31.07.2012 - 18:14) Strannik написал(а):
inpost
бывает) однако покажи мне мои темы пожалуйста про datetime?

http://phpforum.ru/index.php?act=Search&CO...ghlite=datetime

Спустя 5 минут, 56 секунд (31.07.2012 - 18:20) inpost написал(а):
Strannik
А зачем мне поиск по datetime, когда надо делать поиск по автору?
Больше делать нечего, чем 465 сообщений перебрать на форуме. Вот правда, не чем заняться...

Спустя 15 минут, 42 секунды (31.07.2012 - 18:35) CyberOrcX написал(а):
кхм=) весело у вас тут=)

Спустя 27 минут, 3 секунды (31.07.2012 - 19:02) Strannik написал(а):
Цитата (inpost @ 31.07.2012 - 19:20)
Strannik
А зачем мне поиск по datetime, когда надо делать поиск по автору?
Больше делать нечего, чем 465 сообщений перебрать на форуме. Вот правда, не чем заняться...

там же по автору поиск и по ключевому слову)

Спустя 34 минуты, 58 секунд (31.07.2012 - 19:37) Strannik написал(а):
inpost
без обид, я знаю про date_format, но это вопрос про оптимизацию больше.

Если просто преобразовать данные в нужный формат, то это легко, а если преобразовывать при дампе(http://phpforum.ru/index.php?act=ST&f=10&t=64261&st=0#entry1963049), насколько это замедлит работу??

Я спрашиваю не о том как получить дату нужного мне формата, а как дату вида dd-mm-YYYY h:i:s внести в базу именно в таком виде, используя тип столбца DATATIME. поэтому и задаю и, быть может, глупые вопросы=)
просто ответа не нашел еще.

Спустя 9 минут, 42 секунды (31.07.2012 - 19:47) kamanch написал(а):
Цитата
а как дату вида dd-mm-YYYY h:i:s внести в базу именно в таком виде, используя тип столбца DATATIME

Никак.
Ты главного не понял.
По-проще пример: Как в столбец типа INT внести строку "text"?
Ответ - никак, потому что INT - это целочисленное значение.
Так же и DATETIME имеет жесткое представление данных, которые хранит.
Это тип, регламентированный стандартом SQL.
Цитата

MySQL извлекает и выводит величины DATETIME в формате 'YYYY-MM-DD HH:MM:SS'. Поддерживается диапазон величин от '1000-01-01 00:00:00' до '9999-12-31 23:59:59'

Спустя 2 минуты, 6 секунд (31.07.2012 - 19:49) Strannik написал(а):
Цитата (kamanch @ 31.07.2012 - 20:47)
Цитата
а как дату вида dd-mm-YYYY h:i:s внести в базу именно в таком виде, используя тип столбца DATATIME

Никак.
Ты главного не понял.
По-проще пример: Как в столбец типа INT внести строку "text"?
Ответ - никак, потому что INT - это целочисленное значение.
Так же и DATETIME имеет жесткое представление данных, которые хранит.
Это тип, регламентированный стандартом SQL.
Цитата

MySQL извлекает и выводит величины DATETIME в формате 'YYYY-MM-DD HH:MM:SS'. Поддерживается диапазон величин от '1000-01-01 00:00:00' до '9999-12-31 23:59:59'

это и хотел узнать. спасибо)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.