Alterabfrage bei Geburtsdatum
gottlieb
- datenbank
Hi Forum,
bisher hatte ich neben der Spalte "Geburtsdatum" 01.01.1960 auch eine Spalte "age", wo das Alter berechnet und zwischengespeichert wurde.
--> (YEAR(CURDATE())-YEAR(Geburtsdatum)) - (RIGHT(CURDATE(),5)<RIGHT(Geburtsdatum,5))
Mit der Spalte "age" konnte ich in einem Formular die Suche von einem bestimmten Alter eingerenzen. Bsp. Alter 20 bis 30.
Da ich aber nun die Spalte "age" gelöscht und nur noch das Geburtsdatum habe, weiß ich leider nicht, wie ich nun die Abfrage realisieren muss.
Könnte mir jemand eventuell helfen bzw. Tipps geben?
Grüße
Hallo
Da ich aber nun die Spalte "age" gelöscht und nur noch das Geburtsdatum habe, weiß ich leider nicht, wie ich nun die Abfrage realisieren muss.
Könnte mir jemand eventuell helfen bzw. Tipps geben?
das MySQL-Handbuch hat ein wundervolles Kapitel über Funktionen, darin enthalten ein Abschnitt zu Date and Time Functions. Die Funktion DATE_SUB() in Verbindung mit dem Operator BETWEEN ... AND, den Du im gleichen Kapitel findest, sollte genügen.
Freundliche Grüße
Vinzenz
Hi Vinzenz,
das MySQL-Handbuch hat ein wundervolles Kapitel über Funktionen, darin enthalten ein Abschnitt zu Date and Time Functions. Die Funktion DATE_SUB() in Verbindung mit dem Operator BETWEEN ... AND, den Du im gleichen Kapitel findest, sollte genügen.
super, vielen Dank, das ziehe ich mir morgen gleich mal rein ;)
Grüße
Hi Vinzenz,
will meine Lösung reinposten:
SELECT Mitglieds_Name, Mitglieds_Id, (YEAR(CURDATE())-YEAR(GB_Datum)) - (RIGHT(CURDATE(),5)<RIGHT(GB_Datum,5))
FROM Tabelle
WHERE GB_Datum BETWEEN DATE_SUB(now(), INTERVAL 20 YEAR) AND DATE_SUB(now(), INTERVAL 17 YEAR);
Gäbe es hier irgendwelche Einwände?
Die obere Query würde nun alle Mitglieder ausgeben, die min. 17 Jahre alt sind und noch nicht 20 geworden sind. Also ohne die 20. (17-19) Ich müsste mal probieren, wenn jemand genau 17 Jahre alt, bzw. genau heute Geburtstag hätte, ob er auch ausgegeben wird.
Grüße