Berechnung des Altersunterschieds in Jahren als ganze Zahl in MySQL
Die Bestimmung des Alters einer Person in einer Datenbank stellt bei Altersberechnungen eine leichte Herausforderung dar . Betrachten Sie die Tabelle „student“ mit den Spalten „id“ und „birth_date“.
Um das Alter in Tagen zu berechnen, kann der Ausdruck dateiff(curdate(),birth_date) verwendet werden, dieser gibt jedoch einen Gleitkommawert zurück . Die Division durch 365 ergibt ebenfalls einen Gleitkommawert.
Die Berechnung von Jahren als Jahr(curdate())-jahr(Geburtsdatum) führt ebenfalls zu einem Problem. Wenn eine Person beispielsweise im Juni 1970 geboren wurde und das aktuelle Datum im Mai liegt, würde der Ausdruck fälschlicherweise 32 statt 31 Jahre zurückgeben.
Alternative Lösung für ganzzahlige Jahresdifferenzen:
Um dieses Problem zu beheben, betrachten Sie die folgende SQL-Anweisung:
SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student
Dieser Ausdruck berechnet die Differenz zwischen 'date_of_birth' und 'CURDATE()' in Jahren, was zu einem ganzzahligen Wert führt.
Erweiterung für Monate und Tage:
Um die Differenz in Monaten zu berechnen, ersetzen Sie 'YEAR' durch 'MONTH' im Ausdruck:
SELECT TIMESTAMPDIFF(MONTH, date_of_birth, CURDATE()) AS difference FROM student
Ersetzen Sie in ähnlicher Weise die Differenz in Tagen 'YEAR' mit 'DAY':
SELECT TIMESTAMPDIFF(DAY, date_of_birth, CURDATE()) AS difference FROM student
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3