Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Как SQL запросом выбрать ближайшие дни рождения (Коля)
Author Message
Коля
Guest





Карма: 388
   поощрить/наказать


PostPosted: Wed Feb 21, 2007 11:55 am (написано за 2 минуты 1 секунду)
   Post subject: Как SQL запросом выбрать ближайшие дни рождения
Reply with quote

Как SQL запросом выбрать ближайшие дни рождения на 14 дней вперёд, если в раблице
users (id,birthday,name)
Если надо применить PHP тоже можно
Back to top
Guest






Карма: 388
   поощрить/наказать


PostPosted: Wed Feb 21, 2007 12:07 pm (спустя 12 минут; написано за 26 секунд)
   Post subject:
Reply with quote

SELECT birthday, name FROM `user` where
(
DAYOFYEAR(birthday) BETWEEN DAYOFYEAR(CURDATE()) and DAYOFYEAR(DATE_ADD(CURDATE(),INTERVAL 300 day))
)
Back to top
Владимир Хоменко
Участник форума



Joined: 11 Jun 2004
Posts: 427
Карма: 42
   поощрить/наказать

Location: Николаев, Украина

PostPosted: Wed Feb 21, 2007 4:11 pm (спустя 4 часа 4 минуты; написано за 1 минуту 3 секунды)
   Post subject:
Reply with quote

Гость

DAYOFYEAR(CURDATE()) может оказаться больше чем DAYOFYEAR(DATE_ADD(CURDATE(),INTERVAL 300 day)), надо еще и обратную проверку делать
Back to top
View user's profile Send private message Send e-mail
arbyte
Участник форума



Joined: 09 Sep 2006
Posts: 40
Карма: 3
   поощрить/наказать

Location: Москва

PostPosted: Thu Jun 07, 2007 4:46 pm (спустя 3 месяца 14 дней 34 минуты; написано за 2 минуты 13 секунд)
   Post subject:
Reply with quote

Только что столкнулся с похожей проблемой
решил так
SELECT *
FROM `tCompanyPersonal`
WHERE IF (366 - DAYOFYEAR(NOW()) > 10,
        (DAYOFYEAR(Birthday) - DAYOFYEAR(NOW()) < 10) AND (DAYOFYEAR(Birthday) - DAYOFYEAR(NOW()) >= 0),
        ((DAYOFYEAR(Birthday) - DAYOFYEAR(NOW()) < 10) AND (DAYOFYEAR(Birthday) - DAYOFYEAR(NOW()) >= 0)) OR ((366 - DAYOFYEAR(Birthday) - DAYOFYEAR(NOW()) < 10) AND (366 - DAYOFYEAR(Birthday) - DAYOFYEAR(NOW()) >= 0))
    )

Корректно обрабатывается даты через НГ и т.д.. Вместо числа 10 надо подставить свое количество дней, вместо 366 - количество дней в текущем году (в MySQL не нашел такой функции, наверное плохо искал)
Back to top
View user's profile Send private message Send e-mail
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Tue Jun 19, 2007 8:03 pm (спустя 12 дней 3 часа 17 минут; написано за 10 секунд)
   Post subject:
Reply with quote

схожая тема: Вытащить предстоящие дни рождения из MySQL за 10 дней (forum.dklab.ru/sql/common/VitashchitPredstoyashchieDniRogdeniyaIzMysqlZa10Dney.html)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML