Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
-31 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 23
1

Сортировка даты

09.12.2016, 19:41. Показов 4757. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.
Вот уже который день бьюсь головой не могу сделать.
Надеюсь поможете.
В общем есть таблица в ней ФИО и дата рождения. Нужно отсортировать по дате таким образом чтоб первым стал тот у кого дата рождения ближе к сегодняшней дате.
Пример:
[Иванов Иван]: [09-06]
[Сидоров Петр]: [12-12]
[Васечкин Петя]: [12-31]
А сегодня 9 декабря (год не учитывается), отсортироваться должны так:
Сидоров, Васечкин, Иванов.
Если это невыполнимо, то подскажите как правильней сделать.....
Буду очень благодарен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2016, 19:41
Ответы с готовыми решениями:

Сортировка таблицы (даты по времени)
Добрый день. Возникла такая проблема, есть поле в таблице int, в котором хранится дата в...

Сортировка даты (сегодня всегда сверху)
Есть дата в формате datetime, как сделать сортировку что бы сегодняшняя дата всегда была сверху. ...

Сортировка до текущей даты по возрастанию, после - по убыванию
Знатоки, помогите составить запрос. Есть таблица "matches": -------------------------- id | ...

сортировка даты
Задача такая: имеется вывод новостей по рейтингу. Нужно реализовать кнопки популярные за За день...

2
25 / 25 / 7
Регистрация: 27.02.2013
Сообщений: 113
10.12.2016, 06:30 2
Посмотрите функции даты и времени в MySQL, например, здесь:
http://www.mysql.ru/docs/man/D... tions.html

Добавлено через 19 минут
Попробуйте так:
SQL
1
2
SELECT * FROM таблица
       ORDER BY (TO_DAYS(NOW()) - TO_DAYS(Дата_Рожд));
По умолчанию сортировка по возрастанию, значит сначала будут располагаться даты, ближайшие к текущей

Не правильно, т.к. не нужно учитывать год.

Добавлено через 12 минут
SQL
1
2
SELECT * FROM таблица
       ORDER BY (DAYOFYEAR (NOW()) - DAYOFYEAR (Дата_Рожд));
Где DAYOFYEAR - порядковый номер дня в году
0
25 / 25 / 7
Регистрация: 27.02.2013
Сообщений: 113
11.12.2016, 09:07 3
Очень интересная задача.
Думаю ( может со мной не согласятся более умные коллеги), что решить эту задачу одним SQL-запросом не получится.
Здесь две проблемы:
1) Очень мешает год, он у всех дат разный
2) Нет сквозной нумерации месяцев: после 12-го месяца наступает 1-й месяц

Предлагаю следующее решение:
1) В таблице создать вспомогательный столбец типа даты (назовем его data_r1)
2) Таким образом, структура таблицы будет, например, такой:
tab1(fio, data_r, data_r1)
3) Для каждой строки таблицы поле data_r1 есть копия поля data_r, за исключением года. Год у всех дат будет одинаковый, например, 2016, но только на этом шаге.
4) На втором шаге, будем менять год у столбца data_r1 следующим образом:
• Если месяц в data_r1 > месяца в тек дате, то оставляем год без изменения.
• Если месяц в data_r1 < месяца в тек дате, то добавляем к году 1 ( т. е. это будет уже следующий год).
• Если месяц в data_r1= месяцу в тек дате, то проверяем день: если день в data_r1< дня в тек дате, то добавляем к году 1 (т. е. будем поздравлять этих людей уже в следующем году).
5) Подготовив, таким образом, вспомогательное поле data_r1, теперь можно запустить запрос:
SQL
1
SELECT * FROM tab1 ORDER BY data_r1 - curdate();
Т. е. сортировка по разнице поля data_r1 и текущей даты по возрастанию.
0
11.12.2016, 09:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2016, 09:07
Помогаю со студенческими работами здесь

Сортировка: даты в виде
Здраствуйте господа разработчики!Возник вопрос,у меня на форме есть ембедед вьюха, во вьюхе есть...

Сортировка массива (даты)
есть массив: Array ( =&gt; Array ( =&gt; 527 =&gt; --- ...

DataTable сортировка даты
Нашел пример, но немного мне не понятно как писать ее, чтобы сортировало даты корректно и куда...

Сортировка по номеру с учетом даты
Здравствуйте, в журнале рублевая касса есть табличная часть, хранящие соответственно данные о...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru