Mam w tabeli "users" strukturę:
Kod
id | login | date_of_birth
w kolumnie date_of_birth mam datę w formacie DATE, czyli 2005-03-19
chcę pobrać id wszystkich użytkowników, którzy obchodzą rodziny w następnym tygodniu (w ciągu następnych 7 dni)
narazie wykombinowałem takie coś:
SELECT id, login, (YEAR(NOW()) - YEAR(date_of_birth)) AS age, IF (DAYOFYEAR(date_of_birth) - DAYOFYEAR(NOW()) < 0, 365 + DAYOFYEAR(date_of_birth) - DAYOFYEAR(NOW()), DAYOFYEAR(date_of_birth) - DAYOFYEAR(NOW())) AS day FROM users WHERE (DAYOFYEAR(date_of_birth) - DAYOFYEAR(NOW()) <= 7 AND DAYOFYEAR(date_of_birth) - DAYOFYEAR(NOW()) >=0) OR DAYOFYEAR(date_of_birth) - DAYOFYEAR(NOW()) <= -359 ORDER BY day, age
w tym kodzi pobieram którego dnia w roku sie urodził użytkownik i odejmuje od tego numer dnia dzisiejszego, jeżeli różnica jest <= 7 to user spełnia warunek.
dodatkowo chcialbym uzyskac jakiego dnia sie user urodzil i ile ma lat

troche ten kod przydługawy, nie mam pomysłu jak to zrobić krócej, za wszelkie sugestie dziekuje.
pzdr. wojto