powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ближайшие дни рождения (за текущий месяц).
13 сообщений из 13, страница 1 из 1
Ближайшие дни рождения (за текущий месяц).
    #32825005
Фотография upper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди подскажите как достать из базы ближайшие дни рождения, сам не соображу а найти пример или хотя бы наводку не могу. Нужно, чтото типа в этом месяце дни рождения у следующих людей...

Буду рад подсказке или ссылочке :)
...
Рейтинг: 0 / 0
Ближайшие дни рождения (за текущий месяц).
    #32832636
Фотография upper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И почему то не работает такой запрос:
select * from main where birthday between CURDATE() and DATE_ADD(CURDATE(),INTERVAL 1 MONTH)

INTERVAL менял от 1 до 12 уж хоть, что-то должно было попасть в такой интервал но результат - пустой :(
...
Рейтинг: 0 / 0
Ближайшие дни рождения (за текущий месяц).
    #32832714
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну в орасле я бы написал

SELECT *
FROM tabl1
WHERE birthday BETWEEN sysdate AND LAST_DAY(sysdate)
...
Рейтинг: 0 / 0
Ближайшие дни рождения (за текущий месяц).
    #32832778
RFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди, что вы бредите?
В поле birthday наверняка хранится дата рождения! Так вот она не может быть позже, чем "сегодня"!!! Не учитывайте вы год, тогда все сразу заработает!
...
Рейтинг: 0 / 0
Ближайшие дни рождения (за текущий месяц).
    #32833199
Фотография upper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 RFT
а как это сделать?
...
Рейтинг: 0 / 0
Ближайшие дни рождения (за текущий месяц).
    #32833414
RFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сравнивай не всю дату, а только месяц MONTH(date) и день DAYOFMONTH(date).
...
Рейтинг: 0 / 0
Ближайшие дни рождения (за текущий месяц).
    #32835978
Фотография upper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, что у меня получилось
SELECT name,birthday FROM main WHERE MONTH(birthday)=MONTH(CURRENT_DATE)
это будет правильно работать?
Я переводил часы вроде работает... но мало ли..
...
Рейтинг: 0 / 0
Ближайшие дни рождения (за текущий месяц).
    #32836331
RFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работать будет, но не совсем верно: во-первых, у тебя так будут браться уже прошедшие д/р из текущего месяца, а во-вторых если напр. у чела ДР 1-го апреля, а сегодня 31-е марта, то ты узнаешь о его ДР в лючшем случае завтра. Так что пиши:
SELECT name,birthday FROM main WHERE MONTH(birthday) = MONTH(CURRENT_DATE) AND DAYOFMONTH(birthday) > DAYOFMONTH(CURRENT_DATE) OR MONTH(birthday) = MONTH(CURRENT_DATE)+1 AND DAYOFMONTH(birthday) < DAYOFMONTH(CURRENT_DATE)
Так у тебя будут выводиться дни рождения именно на предстоящий месяц.
Только напиши еще обработку текущего декабря, а то без нее у тебя будет лажа, т.е. если сейчас декабрь, то так как я тебе написал январские ДР у тебя не появятся, т.к. MONTH(CURRENT_DATE)+1 будет 13. Лучше воткни сюда какую-нть переменную, которую предварительно вычисли в IF.
P.S. А зачем ты часы переводил, я не понял?
...
Рейтинг: 0 / 0
Ближайшие дни рождения (за текущий месяц).
    #32836662
Фотография upper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Часы(даты, пробовал разные месяца) переводил, чтобы посмотреть работает или нет. Ставил май 2005 и получал данные за май.... и т.п.


Спасибо. Попробую усложнить запрос.
...
Рейтинг: 0 / 0
Ближайшие дни рождения (за текущий месяц).
    #32836799
RFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрел доку, и узнал что IF можно не ставить отдельно (он типа Decode в оракле). Значит, так. Поехали:
SELECT name,birthday FROM main WHERE MONTH(birthday) = MONTH(CURRENT_DATE) AND DAYOFMONTH(birthday) > DAYOFMONTH(CURRENT_DATE) OR MONTH(birthday) = IF(MONTH(CURRENT_DATE)+1 = 13,1,MONTH(CURRENT_DATE)+1) AND DAYOFMONTH(birthday) < DAYOFMONTH(CURRENT_DATE)
...
Рейтинг: 0 / 0
Ближайшие дни рождения (за текущий месяц).
    #32837931
Фотография upper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 RFT
Большое человеческое спасибо :)
Ты спас меня от депрессии :)


Как отсортировать результат если получеем:

18.01.1970
23.12.1968
24.12.1970

то простое ORDER BY DAYOFMONTH(birthday) уже не канает?
...
Рейтинг: 0 / 0
Ближайшие дни рождения (за текущий месяц).
    #32839342
RFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зато ORDER BY birthday заканает
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Ближайшие дни рождения (за текущий месяц).
    #38514785
Vergi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как сделать, что б выводило не на 1 месяц, а на 2 или 3 или 11
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ближайшие дни рождения (за текущий месяц).
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]