Melvin Cowznofski: Geburtstage der letzten und kommenden 3 Tage

Beitrag lesen

Hallo Bobby!

Danke für die Zerlegung des Codes und die Erklärung, welche mir das Ganze etwas leichter machte, die Sache zu verstehen. Ich habe trotzdem mehrere Tage gebraucht, bis mir halbwegs klar war, was hier passiert. Deshalb auch erst jetzt meine Antwort.

Etwas habe ich allerdings verändert. Zunächst bin ich draufgekommen, dass man den Teil mit dem +0 oder 1 gar nicht wirklich braucht, wenn man sich die Geburtstage des Zeitraums -3 Tage bis heute bis +3 Tage mit der Anzahl der Differenztage zu heute ausgeben lassen möchte.

Außerdem finde ich die ursprüngliche Sortierung nach "daystobirthday" nicht sehr optimal. Ich will ja nicht wissen, dass ein User in 364 Tagen den nächsten Geburtstag hat. Ich will wissen, ober ihn heute, in 1,2 oder 3 Tagen oder vor 1, 2 oder 3 Tagen gehabt hat und danach möchte ich auch die Ausgabe reihen.

Deshalb schaut mein Query in der aktuellen, finalen Version so aus:

  
SELECT   m.name,  
         m.familienname,  
         m.geburtsdatum,  
         DATEDIFF(m.geburtsdatum+INTERVAL(YEAR(NOW())-YEAR(m.geburtsdatum))YEAR,NOW()) AS differenz  
FROM     mitglieder AS m  
HAVING   differenz BETWEEN -3 AND 3  
ORDER BY differenz ASC  
  

Kurz, simpel und nun auch für mich verständlich. Man kann natürlich eine weitere virtuelle Spalte schaffen und zusätzlich auch noch das momentane Alter ausgeben.

Somit habe ich eine Lösung, die ich auch verstehe. Danke nochmals für Deine Antwort!

Mit lieben Grüßen

Melvin Cowznofski

--

Melvin Cowznofski
What – me worry?