Quote (Medusa @ May 2 2023 05:30pm)
SELECT * FROM mitglied
WHERE DATE_FORMAT(geburtstag, '%m-%d') BETWEEN
DATE_FORMAT(CURDATE(), '%m-%d') AND
DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL 7 DAY), '%m-%d');
Wow es funktioniert

Vielen Dank!
Quote (blah2k6 @ May 2 2023 04:36pm)
Welche Datenbank benutzt du denn?
Falls Oracle kannst du BETWEEN SYSDATE AND SYSDATE+7 verwenden.
Wichtig bei between ist, dass der "kleinere" (frühere) Wert vor dem AND kommt
/e: außerdem sollte man berücksichtigen dass Datumswerte immer alle Informationen beinhalten (Tag, Monat, Jahr, Stunden, Minuten, Sekunden)
D.h. man muss das ganze evtl ohne die Uhrzeit betrachten (bzw. bei Geburtstagen sogar auch ohne das Jahr)
Würde vmtl. "heute" und "heute in 7 Tagen" jeweils als strings konvertieren und ins Format MMDD bringen.
Bei Oracle:
TO_CHAR(geburtstag, 'MMDD') BETWEEN TO_CHAR(SYSDATE, 'MMDD') AND TO_CHAR(SYSDATE+7, 'MMDD')
Falls andere DB dann schauen, welche Funktion dort Date in Varchar konvertiert.
Das alles unter der Annahme, dass "geburtstag" im Datentyp Date gespeichert ist.
Ich benutz MySQL von Microsoft.
Ist Oracle besser und kostenfrei?