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

Форум MySQL

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

 

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

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

тема: сортировка по месяцу и числу когда в строке вся дата
 
 автор: hel   (18.09.2008 в 07:23)   письмо автору
 
 

Подскажите, пожалуйста, как можно выбрать месяц и дату, когда даты YYYY-MM-DD полностью в строках. То есть записаны памятные даты, а надо выяснить сколько еще в этом году отмечать. то есть год нас не интересует при сортировке. Например есть поле battle, а надо вывести по-порядку, что осталось праздновать, например:
5.10 отпразднуем kulikovska bitva которая прошла 1256 лет назад
16.10 отпразднуем kurskaja duga которая прошла 66 лет назад
10.12 отпразднуем poltavskaja bitva которая прошла 874 лет назад

  Ответить  
 
 автор: xx77   (18.09.2008 в 11:22)   письмо автору
 
   для: hel   (18.09.2008 в 07:23)
 

с сортировкой попроще будет , в ORDER BY в отличие от GROUP BY
можно использовать алиасы
SELECT `id`, DAYOFMONTH(`time`) AS day, MONTH(`time`) AS month
FROM `table` 
ORDER BY month, day


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

  Ответить  
 
 автор: hel   (18.09.2008 в 12:36)   письмо автору
 
   для: xx77   (18.09.2008 в 11:22)
 

подскажите еще можно ли вырать даты следующие за текущей. склеить как-нибудь DAYOFMONTH(`time`) и MONTH(`time`) в одну AS date например, а затем поставить условие WHERE date>$date , где $date - сегодня - 918 (18 сентября) а date к примеру 1012 (12 октября), т.е 1012>918 и. т. д.

  Ответить  
 
 автор: xx77   (18.09.2008 в 16:09)   письмо автору
 
   для: hel   (18.09.2008 в 12:36)
 

для сравнения дат в таком формате как 918
, нужно добавлять нули к однозначным цифрам, чтобы 0111 и 1101 небыло одним и тем-же
а так способов много , читайте про функции MySQL для работы с датой
, можно строковыми функциями тоже.

что-то такое должно работать ,
SELECT 
`id`,
DATE_FORMAT(`time`, '%e.%c') AS month_day 
FROM `table`
WHERE  DATE_FORMAT(`time`, '%m%d') > DATE_FORMAT(NOW(), "%m%d")
ORDER BY DAYOFYEAR(`time`)

если вместо DATE_FORMAT(NOW(), "%m%d") вставить 0918,

но именно с такой постановкой запроса
, я-бы подумал не сделать-ли другой принцип работы
, и не поубавить-ли как-то всяких функций для WHERE

UPD//
поменял знак на > .)

  Ответить  
Rambler's Top100
вверх

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