Datumsunterschied in MySQL zur Berechnung des Alters

8

Ich habe ein Problem bezüglich der Funktion datediff MYSQL, ich kann es benutzen und es ist einfach. Aber ich verstehe nicht, wie man es benutzt, um Unterschiede innerhalb des Tabellenfeldes zu sammeln. ZB

Ich habe eine Spalte dob und möchte eine Abfrage schreiben, die etwas wie

macht %Vor%

Ich meine, ich möchte den Unterschied von der aktuellen Datumszeit in das Tabellenfeld dob , jedes Abfrageergebnis ist die Differenz, das Alter des Benutzers.

    
chsab420 05.09.2009, 14:54
quelle

7 Antworten

20

Sie meinen das so?

%Vor%

( Quelle )

    
Nadia Alramli 05.09.2009, 15:17
quelle
8

Du könntest das tun

SELECT TIMESTAMPDIFF(YEAR, date_of_birth, NOW()) AS age FROM your_table

Funktioniert jedes Mal.

    
djynnius 11.03.2014 06:57
quelle
1

Wenn Sie möchten, dass für jeden Benutzer das Alter in Jahren angezeigt wird, machen Sie

%Vor%     
Martin v. Löwis 05.09.2009 15:21
quelle
1

Wenn ich Ihre Kommentare zu den vorherigen Antworten verstehe, handelt es sich bei der Spalte für das Geburtsdatum nicht um einen DATE -Wert, sondern um eine Zeichenfolge im Format m / d / y. Ich empfehle Ihnen dringend, dies zu ändern. es verlangsamt alle Datumsberechnungen, die Sie ausführen möchten, und Sie riskieren, dass ungültige Datumswerte in die Spalte eingegeben werden.

Ich denke, das ist was du brauchst. Es verwendet die Funktion STR_TO_DATE() und einen Algorithmus zur Berechnung des Alters aus der MySQL-Dokumentation:

%Vor%     
Ken Keenan 05.09.2009 21:06
quelle
0

Ich denke, das sollte helfen

SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@dateofbirth)), '%Y') + 0;

Hinweis: Geben Sie das D.O.B im richtigen Format, z. YYYY-MM-DD'=> '1991-11-11

    
VISHNU 02.09.2013 14:02
quelle
0

Versuchen Sie es

%Vor%     
Akhileshwar Reddy 15.08.2015 11:12
quelle
0
%Vor%     
David S Gonzalez H 17.05.2016 14:15
quelle

Tags und Links