Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zapytanie o użytkowników obchodzących urodziny ...
Forum PHP.pl > Forum > Bazy danych > MySQL
wojto
Witam,
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ś:
  1. 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
  2. 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 smile.gif

troche ten kod przydługawy, nie mam pomysłu jak to zrobić krócej, za wszelkie sugestie dziekuje.
pzdr. wojto
SongoQ
Uzyj interval
wojto
Cytat(SongoQ @ 2005-03-19 12:03:56)
Uzyj interval

probowalem INTERVAL, ale to mi dodaje ilosc dni do dnia urodzenia, czyli np. do 1973-12-09 +7 bedzie 1973-12-16, wiec nie wiem jak dalej sprawdzic, czy ten user ma urodziny, bo jest roznica lat
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.