geboorte datum om zetten naar leeftijd via mysql
ik zie door de bomen het bos niet meer.
ik heb al gelezen hoe je het met php kan doen.
maar dit lijkt mij omslachtig als het ook met mysql kan.
alleen alles wat ik op vriend google gevonden heb kom ik niet uit.
ik zou graag een voorbeeld willen en nog veel liever de uitleg wat wat doet bij de code.
Verder kan je het ook converteren, maar dat hangt af van het formaat.
is er trouwens ergens een duidelijke site met ALLE mysql functies?
EDIT: waarom DATETIME???? DATE is genoeg toch?
Gewijzigd op 12/02/2015 21:28:30 door marcel sauer
als ik het goed begrijp staat er :
selecteer timestampdiff (selecteer het jaar van "birth" en van "datum nu") als age van tabel (in mijn geval user)
klopt dit?
@Frank: Ik geloof niet dat jouw antwoord correct is. Geboren in December geeft volgens mij dezelfde leeftijd als geboren in Januari.
- SanThe - op 12/02/2015 21:48:38:
@Frank: Ik geloof niet dat jouw antwoord correct is. Geboren in December geeft volgens mij dezelfde leeftijd als geboren in Januari.
Werkt als een zonnetje..
Toevoeging op 12/02/2015 21:56:44:
Komt overigens van de MySql website: http://dev.mysql.com/doc/refman/5.0/en/date-calculations.html
maar kan er een uitleg gegeven worden van de code aub?
- 'birth' is de naam van de kolom die de geboortedatum heeft. Misschien is dat bij jou 'geboortedatum' of 'born'
Verder is het een gewone SELECT query. De leeftijd komt met een kolomnaam 'age'.
Je zou ook dit kunnen doen:
Code (php)
1
SELECT voornaam, achternaam, woonplaats, TIMESTAMPDIFF(YEAR, birth, CURDATE()) AS age FROM tablename;
of
Toevoeging op 12/02/2015 22:19:39:
Het berekent met de mysql Date function TIMESTAMPDIFF het aantal jaren verschil uit tussen de datum van vandaag ( CURDATE() ) en de geboortedatum.
ik heb nu dit :
$result = mysql_query("SELECT birthday, CURDATE(), TIMESTAMPDIFF(YEAR, birthday, CURDATE()) AS age FROM user");
maar ik krijg bij de echo er niks uit.
bij gewoon gegevens ophalen wel.
(SELECT birthday FROM user)
alvast bedankt voor de uitleg van de regel.
ik neem aan dat je nu ook in plaats van normaal $row["birthday"] nu $row["age"] moet nemen toch?
EDIT : comma vergeten zie ik. Werkt nu wel!!!
houd de TIMESTAMPDIFF rekening met schrikkeljaren? en als ik het tot op de dag moet laten berekenen kan dat dan zo ?
$result = mysql_query("SELECT birthday, CURDATE() TIMESTAMPDIFF(YEAR, MONTH, DAY, birthday, CURDATE()) AS age FROM user");
Toevoeging op 12/02/2015 22:54:12:
heb hem net even uitgetest door de datum te veranderen naar vandaag daarna naar morgen met een ouder jaartal en het werkt!
super bedankt voor de hulp!
Gewijzigd op 12/02/2015 22:39:12 door marcel sauer