Translations:Faq/Base/121/9/de
Diese Abfragen funktionieren vom Prinzip her ganz gut. Es kann allerdings zu Fehlern mit Schaltjahren kommen, wenn die Geburtstage am 29.02. oder am 1.03. liegen. Mit dieser Bedingung wird die Abfrage noch deutlich umfangreicher. Es muss nach dem Monat und nach dem Tag im Monat gefragt werden. Wer am 29.02. geboren wurde hat danach in normalen Jahren am 1.03. Geburtstag:
SELECT "Geburtsdatum",
(HSQLDB, GUI)
CASE
WHEN( MONTH("Geburtsdatum") > MONTH(CURRENT_DATE) OR (MONTH("Geburtsdatum") = MONTH(CURRENT_DATE) AND DAY("Geburtsdatum") > DAY(CURRENT_DATE)))
THEN DATEDIFF('yy',"Geburtsdatum",CURRENT_DATE)-1
ELSE DATEDIFF('yy',"Geburtsdatum",CURRENT_DATE)
END AS "Alter"
FROM "Person"