Berechnung des Altersunterschieds in MySQL als ganze Zahl
Die Bestimmung des Alters einer Person in einer Datenbank kann bei der Datumsberechnung eine Herausforderung darstellen. Die in MySQL integrierte Funktion DATEDIFF berechnet die Differenz zwischen zwei Datumsangaben in Tagen, was eine weitere Verarbeitung erfordert, um das Alter in Jahren zu erhalten.
Ein Ansatz besteht darin, die Differenz in Tagen durch 365 zu dividieren, was jedoch zu einem Gleitkomma führt Wert. Um eine ganze Zahl zu erhalten, können die Jahreskomponenten des aktuellen Datums und des Geburtsdatums subtrahiert werden:
SELECT id, year(curdate())-year(birth_date) FROM student
Dieser Ansatz stößt jedoch auf Probleme, wenn das berechnete Alter für Personen, die nach dem aktuellen Monat geboren wurden, um ein Jahr abweicht . Beispielsweise würde jemand, der im Juni 1970 geboren wurde, nach dieser Methode als 32 Jahre alt gelten, obwohl er erst 31 Jahre und fünf Monate alt ist.
Auflösung:
An Um dieses Problem zu lösen, bietet MySQL die Funktion TIMESTAMPDIFF, die einen genaueren Ansatz zur Berechnung von Altersunterschieden bietet. Die folgende Abfrage verwendet TIMESTAMPDIFF:
SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student
Durch Ersetzen von YEAR durch MONTH oder DAY können Altersunterschiede in Monaten bzw. Tagen berechnet werden. Diese Methode bewältigt effektiv Szenarien, in denen das Alter in bestimmten Monaten um eine Einheit abweicht.
Das obige ist der detaillierte Inhalt vonWie kann man mit MySQL den Altersunterschied in Jahren genau berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!