|
|
|
| Вопросик возник. Объясню по пунктам:)
Есть таблица, в которой записаны данные о участниках проекта.
В колонке birth записи о дне рождения участника (к примеру, 1976-07-24).
На сайте есть колонка "День рождение", в которую предполагается выводить информацию у кого сегодня день рождение. Но так как участников меньше чем дней в году:), то решил сделать таким, образом, если нет на текущую дату именника, то выводить ближайшего по дате у кого будет.
Но не могу сообразить как сделать запрос:(. Просьба, подсказать
----
Regards, Max Vasin. | |
|
|
|
|
|
|
|
для: Max Vasin
(18.05.2008 в 10:40)
| | Имеется в виду строго за ближайший день? Может вам просто подойдёт запрос выводящий ближайшие 10-15 человек, у которых намечается день рождение? | |
|
|
|
|
|
|
|
для: cheops
(18.05.2008 в 10:57)
| | хм.. как-то не подумал об этом.
может будет лучше выводить у кого ДР в этом месяце?
Не отказался бы посмотреть и на Ваш вариант:)
----
Regards, Max Vasin. | |
|
|
|
|
|
|
|
для: Max Vasin
(18.05.2008 в 11:08)
| | С текущим месяцем вообще всё просто
SELECT * FROM tbl
WHERE YEAR(NOW()) = YEAR(birth) AND MONTH(NOW()) = MONTH(birth)
ORDER BY birth
|
Если необходимо вывести 10 ближайших именинников, можно воспользоваться запросом
SELECT * FROM tbl
WHERE birth >= NOW()
ORDER BY birth
LIMIT 10
|
| |
|
|
|
|
|
|
|
для: cheops
(18.05.2008 в 12:59)
| | спасибо)
знаки у Вас только не верно стоят
в первом: год текущий должен быть больше табличного
во втором:
----
Regards, Max Vasin. | |
|
|
|
|
|
|
|
для: Max Vasin
(18.05.2008 в 13:15)
| | С первым замечанием согласен.
Во-втором случае лучше даже воспользоваться запросом вида
SELECT * FROM tbl
WHERE DATE_FORMAT('%m-%d', birth) >= DATE_FORMAT('%m-%d', NOW())
ORDER BY birth
LIMIT 10 | |
|
|
|
|
|
|
|
для: cheops
(18.05.2008 в 13:56)
| | хм... ничего не возвращает запрос
----
Regards, Max Vasin. | |
|
|
|