Als erstes wird eine Tabelle für die Benutzer erstellt. Hier im Beispiel benutzen ich nur die 3 Spalten id, nick für den Benutzernamen und birthday für das Geburtsdatum.
CREATE TABLE accounts(
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
nick VARCHAR(32) NOT NULL,
birthday DATE NULL,
UNIQUE(nick)
);
Um den Benutzernamen und das Alter aller Benutzer auf der Tabelle „accounts“ auszulesen wird dann folgender Query benutzt:
SELECT
nick,
YEAR(NOW()) - YEAR(birthday) - IF(DATE_FORMAT('%m-%d', NOW()) > DATE_FORMAT('%m-%d', birthday), 0, 1) AS age
FROM
accounts
Es wird dann folgendes (für meine Benutzer „foo“ und „bar“) Ausgegeben:
nick | birthday | age |
---|---|---|
foo | 1980-05-01 | 26 |
bar | 1984-04-04 | 22 |
Das IF kann man sich sparen 🙂
SELECT
nick,
YEAR(NOW()) - YEAR(birthday) - (DATE_FORMAT(NOW(), ’%m-%d’) < DATE_FORMAT(birthday, ’%m-%d’)) AS age
FROM
accounts
LikeLike