Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Geburtstage

  1. #1
    Registrierter Benutzer
    Registriert seit
    15.10.2005
    Ort
    Franken
    Beiträge
    362

    Geburtstage

    Hallo,

    ich stehe hier grade vor einem interessanten Problem. Wahrscheinlich ist es so trivial, dass ich einfach nicht drauf komm:

    In der Nutzer-Datenbank steht ein Feld "geburtstag" vom typ "date". Jetzt will ich einen Tag vor dem Geburtstag per Cron eine Mail an diejenigen schicken, die den User als "persönlichen Kontakt" eingetragen haben.

    Nur das Problem: Wie bekomme raus, wann da jetzt jemand Geburtstag hat. Problem sind die Schaltjahre, denn wenn ein Schaltjahr ist, wird die Mail nach dem 29. Feb immer erst am Tag des Geburtstages versandt, also einen Tag zu spät.

    Meinen bisherigen Query halte ich mal zurück, da ihr sonst nur auf dumme Gedanken kommt.

    Schonmal danke für die Hilfe.
    Dank der Rekursion kann ich IF-Schleifen bauen.

    In neuem Glanz: www.turbohummel.de

  2. #2
    Registrierter Benutzer
    Registriert seit
    03.07.2000
    Ort
    Weinviertel
    Beiträge
    55
    Servus!

    Du kannst ja die MySQL-Datumsfunktion verwenden. Die sollte richtig rechnen
    Ein nächtlicher Cronjob erledingt dir die Abfrage.

    Du fragst einfach ab:
    SELECT irgendwas FROM tabelle
    WHERE DATE_FORMAT(spalte, '%d-%m') = DATE_FORMAT(DATE_ADD(CURDATE, INTERVAL 1 DAY), '%d-%m');

    Ungetestet, geht möglicherweise auch eleganter...

    Grüße, Stefan
    Projekt phpHotspot - (W)Lan Hotspot unter Linux

    Gibt es Fernwartungmöglichkeiten für Windows-Server?
    Na klar! Microsoft Cordless Wheel Mouse :D

  3. #3
    Registrierter Benutzer
    Registriert seit
    26.12.2002
    Ort
    Matrix
    Beiträge
    194
    unter oracle:

    SQL> select to_date('2004-02-29','YYYY-MM-DD')-1 notify from dual;

    NOTIFY
    ---------
    28-FEB-04


    -j

  4. #4
    Registrierter Benutzer
    Registriert seit
    15.10.2005
    Ort
    Franken
    Beiträge
    362
    SELECT irgendwas FROM tabelle
    WHERE DATE_FORMAT(spalte, '%d-%m') = DATE_FORMAT(DATE_ADD(CURDATE, INTERVAL 1 DAY), '%d-%m');
    Args, natürlich. An den Teil mit dem Interval hab ich natürlich nicht gedacht. Danke. Ich nehme trotzdem weitere Vorschläge an.
    Dank der Rekursion kann ich IF-Schleifen bauen.

    In neuem Glanz: www.turbohummel.de

  5. #5
    Registrierter Benutzer
    Registriert seit
    15.10.2005
    Ort
    Franken
    Beiträge
    362
    Nachtrag: Es gab noch ein Problem mit dem 1.1. jeden Jahres, das konnte ich aber selbst lösen.
    Dank der Rekursion kann ich IF-Schleifen bauen.

    In neuem Glanz: www.turbohummel.de

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •