Сравнение дат вне зависимости от года

Эдди

Новичок
К примеру, надо поздравить работника с днюхой за три дня и чтобы на странице сообщение выводилось до дня его рождения, включая этот день.
В БД день рождения работников хранится в формате 000-00-00

Что в запросе пишем в WHERE?
Ничего не приходит в голову. А что приходит, то настолько сложно, что, уверен, есть более простые решения.

Хелп, плиз...
 

Эдди

Новичок
Даты надо хранить не в «формате 000-00-00», а в формате DATE.
Тогда «простые решения» — очевидны: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_datediff

(Вообще, говорят, заранее поздравлять — плохая примета…)
0000-00-00 - это и есть формат DATE. Именно в нем и храню.
 

Эдди

Новичок

Эдди

Новичок
DAYOFYEAR() нельзя использовать из-за високосных годов.
Мысли были разные сумасбродные. Определить разницу в годах. Прибавить, убавить, вычесть. = все не то.

Однако задача сводится к "сравнению дат вне зависимости от года".
Чувствую, что все очень просто решается. Но-:))

Была бы функция DAYOFYEAR_MONTHOFYEAR_MINUS_YEAR():)
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Код:
date_diff(date_format(now(),'0000-%m-%d'), date_format(field, '0000-%m-%d'))
?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Код:
date_diff(now(), year(now())+'-'+month(field)+'-'+day(field))
?
 
Сверху