Vielfachen Abstand zu einem Datum
rickard
- datenbank
Hallo Leute,
ich möchte mit MySQL eine Abfrage erstellen, die basierend auf einer Differenz zu einem Datum in der DB die richtigen User ausgibt.
Beispiel:
Selektiere alle User, deren Differenz zum DB-Feld [Datum] ein Vielfaches von 1 Jahr ist. (Anwendung: "Geburtstagsgruß jedes Jahr")
Selektiere alle User, deren Differenz zum DB-Feld [Datum] ein Vielfaches von 14 Tagen ist. (Anwendung: "Erinnerungsmail alle 14 Tage")
Selektiere alle User, deren Differenz zum DB-Feld [Datum] ein Vielfaches von 3 Monaten ist. (Anwendung "Benachrichtigung zum Quartalsende")
Ich suche nach einer allgemeinen Form, wie ich das lösen kann und nicht so wie hier nur bezogen auf Monate wie hier http://forum.de.selfhtml.org/archiv/2008/7/t174747/. Das heißt, es soll für folgende MySQL-Zeiteinheiten möglich sein (Minute, Stunde, Tag, Woche, Monat, Jahr).
Über Ideen zur Lösung des Problems würde ich mich sehr freuen.
Danke und beste Grüße
Also was ich brauche, ist so etwas wie MySQL DATE_ADD (vgl. http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_adddate) nur mit variabler Zahl N, wobei N, 2N, 3N, 4N, usw. funktionieren muss:
SELECT DATE_ADD(mydate, INTERVAL N DAY);
Gibt's sowas?
Hallo,
mit variabler Zahl N, wobei N, 2N, 3N, 4N, usw. funktionieren muss:
SELECT DATE_ADD(mydate, INTERVAL N DAY);
Gibt's sowas?
Ja, in der Sprache deiner Wahl, mit der du das Statement zusammenbaust und statt N den entsprechenden Wert einsetzt.
vg ichbinich
Hmm, das ist natürlich nicht das, was ich will. Kann ja nicht X Abfragen machen...
Brauche irgendwas mit mod und interval geschachtelt...
Hallo,
mit variabler Zahl N, wobei N, 2N, 3N, 4N, usw. funktionieren muss:
SELECT DATE_ADD(mydate, INTERVAL N DAY);
Gibt's sowas?
Ja, in der Sprache deiner Wahl, mit der du das Statement zusammenbaust und statt N den entsprechenden Wert einsetzt.vg ichbinich
Hi,
SELECT DATE_ADD(mydate, INTERVAL N DAY);
Gibt's sowas?
Nein, nicht direkt bzw. build-in.
Ggf. ist sowas mit einer stored procedure umsetzbar, die in einer Schleife x Werte durchprobiert.
MfG ChrisB
Hi, zum Thema Event Scheduling und Erinnerungen gibt es hier ein recht gutes Whitepaper. Gestalte die Tabelle in mySQL so, dass du die notwendigen Daten ueber das Recurrence Pattern darin ablegen kannst und bau dir mit PHP ein API um diese Werte entsprechend zu interpretieren. Das verlagert die rechenintensive Arbeit von Datenbankabfragen nach PHP hinein. Am Ende bleibt es ja eh bei Datumsfunktionen. :-)
Cheers, Frank