-31 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 23
|
|
1 | |
Сортировка даты09.12.2016, 19:41. Показов 4757. Ответов 2
Метки нет (Все метки)
Всем привет.
Вот уже который день бьюсь головой не могу сделать. Надеюсь поможете. В общем есть таблица в ней ФИО и дата рождения. Нужно отсортировать по дате таким образом чтоб первым стал тот у кого дата рождения ближе к сегодняшней дате. Пример: [Иванов Иван]: [09-06] [Сидоров Петр]: [12-12] [Васечкин Петя]: [12-31] А сегодня 9 декабря (год не учитывается), отсортироваться должны так: Сидоров, Васечкин, Иванов. Если это невыполнимо, то подскажите как правильней сделать..... Буду очень благодарен.
0
|
09.12.2016, 19:41 | |
Ответы с готовыми решениями:
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 минут Попробуйте так:
Не правильно, т.к. не нужно учитывать год. Добавлено через 12 минут
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, теперь можно запустить запрос:
0
|
11.12.2016, 09:07 | |
11.12.2016, 09:07 | |
Помогаю со студенческими работами здесь
3
Сортировка: даты в виде Сортировка массива (даты) DataTable сортировка даты Сортировка по номеру с учетом даты Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |