Geburtstagsliste in LibreOffice Base erstellen
© svetazi - Adobe Stock

LibreOffice Base: Mit dieser Formel tragen Sie Geburtstage erfolgreich in Base ein

Wenn Sie in LibreOffice Base die Geburtsdaten von Personen erfassen, kann das Programm für Sie ausrechnen, wie alt eine Person dieses Jahr ist. Wir zeigen Ihnen, wie das funktioniert.

So erstellen Sie eine Geburtstagsliste in LibreOffice Base

Wenn Sie in LibreOffice Base die Geburtsdaten von Personen erfassen, kann das Programm für Sie ausrechnen, wie alt eine Person dieses Jahr ist. Dazu wird eine einfache Formel benutzt, die das Geburtsjahr vom aktuellen Jahr abzieht. Das ist allerdings nicht besonders genau, denn nach der üblichen Zählweise ändert sich ja das Lebensjahr einer Person an ihrem Geburtstag. Dieser muss also in die Formel mit einfließen.

Zunächst lautete die Formel so:

SELECT DATEDIFF( 'yy', "Mitglieder"."Geburtsdatum", CURRENT_DATE ) AS "Alter" FROM "Mitglieder"

Die Variable CURRENT_DATE enthält stets das aktuelle Datum. Mit der Funktion DAYOFYEAR isolieren wir den Tag aus dem Datum und lassen die Jahreszahl weg. Das machen wir mit dem aktuellen Datum:

DAYOFYEAR(CURRENT_DATE)

...und genauso mit dem Geburtsdatum:

DAYOFYEAR( "Mitglieder"."Geburtsdatum")

Dann prüfen wir, ob der Geburtstag dieses Jahr noch kommt:

DAYOFYEAR( "Mitglieder"."Geburtsdatum") > DAYOFYEAR(CURRENT_DATE)

Schließlich wird mit dem Befehl CASEWHEN eine Bedingung erzeugt. Liegt das Datum des Geburtstages noch in der Zukunft, so ziehen wir ein Jahr vom errechneten Lebensalter ab:

- CASEWHEN( DAYOFYEAR( "Mitglieder"."Geburtsdatum") > DAYOFYEAR(CURRENT_DATE), 1, 0)

Das Minus ganz vorn ist das Rechenzeichen und die 1 fast am Ende wird abgezogen, wenn das ganze Gedöns dazwischen zutrifft. Die fertige Formel sieht schließlich so aus:

SELECT DATEDIFF( 'yy', "Mitglieder"."Geburtsdatum", CURRENT_DATE )  - CASEWHEN( DAYOFYEAR( "Mitglieder"."Geburtsdatum") > DAYOFYEAR(CURRENT_DATE), 1, 0) AS "Alter" FROM "Mitglieder"