Сортировка данных по DATETIME

DV

Guest
Сортировка данных по DATETIME

Скажите, пожалуйста, как отсортировать по дате и времени, если всё это хозяйство сохранено в DATETIME? Нужно, чтобы сообщения выводились по последней дате и времени сообщения - чем старше, тем выше при выводе.
 

Фанат

oncle terrible
Команда форума
так же, как и по полю любого другого типа, а что?
 

DV

Guest
ну здесь небольшой парадокс - он сортирует, как я понял по всему значению - год-месяц-день час:минуты:сек, а мне надо чтобы по дате и по времени отдельно...
 

Фанат

oncle terrible
Команда форума
вот честно - меня ставят в тупик такие вопросы.
Это все равно, что спросить - "а как мне есть суп, если это борщ?"
Вроде бы, подразумевается, что человек в курсе, что суп едят ложкой.
И совершенно непонятно, в чем его проблема, поскольку борщ едят точно так же.
Вроде бы, если бы человек не знал вообще, как в SQL сортируют - он бы так и спросил? А если знал - то взял бы и попробовал?

-~{}~ 16.12.04 20:52:

какой еще парадокс?
что значит - отдельно? что изменится, если сортировать "отдельно"? один день встанет посреди другого?
 

DV

Guest
нет, если по деск то он возмет самый последний день и выведен новости в порядке их "свежести" - от самой последней до....на данный день, а надо чтобы он брал последний день и выводил по времени - чем старее новость, тем выше.
 

Фанат

oncle terrible
Команда форума
а сразу это написать сложно было?
обязательно клещами из тебя вытаскивать?
 

Фанат

oncle terrible
Команда форума
тебе надо выбрать за один день или за несколько?
 

Фанат

oncle terrible
Команда форума
ну у меня стоит <= now(),
а зачем?
при чем здесь сортировка тогда? По дням? Если все равно тебе день нужен один? если тебе нужно отфильтровать один день, а дальше ты его сортируешь как угодно?
 

DV

Guest
чтобы выводился последний день в базе и можно было забить новости с большей датой и они выводиль при наступлении оной автоматом

-~{}~ 17.12.04 20:43:

Так что, получается, что такое совершить невозможно?
 

Фанат

oncle terrible
Команда форума
почему невозможно-то?
ты ограничиваешь новости сверху - так ограничь и снизу.
и все.
если я правильно понял, что тебе надо
 

DV

Guest
Фанат
Извините, за не достойный вопрос: а выбрать последнюю дату в базе можно только отделем селектом или можно всё в одном сделать (выбрать последнюю дату и отсортировать как надо) - какой-нибудь функцией?
 

Фанат

oncle terrible
Команда форума
Да, вопрос замечательный.
В силу того, что ты УЖЕ, В СВОЕМ запросе ограничиваешь дату и сортируешь. а теперь спрашиваешь у меня - можно ли это сделать. Но ты уже это делаешь.
просто с другим условием.
добавь теперь условие отбора новостей за один день
 

DV

Guest
Хоть убейте, не соображу никак...))) С <=now() легко, а вот как один день выделить...(((
 

Фанат

oncle terrible
Команда форума
отрезать от datetime дату и от now тоже

-~{}~ 17.12.04 23:53:

WHERE left(date,8)=left(now(),8)
 

DV

Guest
WHERE left(date,8)=left(now(),8)
Это по текущей, а если за сегодня ничего нет? Пустое место краше сайт не сделает.

-~{}~ 18.12.04 00:08:

Блин, вот гемор, специально создавал дату и время одним полем, чтобы можно было запускать новости по времени....теперь не расхлебаешься...
 

Фанат

oncle terrible
Команда форума
ты уж определись, что тебе надо.
а потом делай.
если в процессе возникнут особоые условия - учти и переделай.
книжку по SQL дать?

и непонятно, чего ты на формат поля ополчился.
он-то тут при чем?
 

DV

Guest
да не на формат, а на то, что с ним труднее сортировать результат

-~{}~ 18.12.04 00:24:

Чувствую, что проще будет отдельным селектом определить дату, которая <=now() и потом уже по ней делать выборку из базы новостей...

-~{}~ 25.01.05 20:37:

Задумано было так, что $sqldate будет датой самой свежей новости из базы...но при переходе в новые сутки $sqldate отобразает не дату последней новости, а текущую дату...где я протупил? )))

$data_rez = mysql_query("select mdata from ".$table." where DATE_FORMAT(mdata, '%Y-%m-%d') <= now() and razdel='imya' order by mdata desc limit 1"); $sqldate = date('Y-m-d', strtotime($data_rez["mdata"]));
 

chira

Новичок
DV
ты наверно не все новости выводишь на первую страницу, есть какое-то ограничение, например LIMIT 100
cделай так
.....
WHERE news_date <= now()
ORDER BY DATE_FORMAT(news_date,'%Y%m%d') DESC, DATE_FORMAT(news_date,'%H%i%s') ASC
LIMIT 100
 
Сверху