Een DATETIME-type als veld gebruiken.
Verder kan je het ook converteren, maar dat hangt af van het formaat.
ik heb in mijn database het formaat YYYYMMDD staan.
is er trouwens ergens een duidelijke site met ALLE mysql functies?
EDIT: waarom DATETIME???? DATE is genoeg toch?
Een DATE of DATETIME werken allebei,
SELECT TIMESTAMPDIFF(YEAR, birth, CURDATE()) AS age FROM tablename;
kan je deze regel wat meer vertalen voor mij?
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..
[size=xsmall]
Toevoeging op 12/02/2015 21:56:44:[/size]
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?
Wat snap je niet?
- '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:
SELECT voornaam, achternaam, woonplaats, TIMESTAMPDIFF(YEAR, birth, CURDATE()) AS age FROM tablename;
of
SELECT *, TIMESTAMPDIFF(YEAR, birth, CURDATE()) AS age FROM tablename;
[size=xsmall]
Toevoeging op 12/02/2015 22:19:39:[/size]
Het berekent met de
mysql Date function TIMESTAMPDIFF het aantal jaren verschil uit tussen de datum van vandaag ( CURDATE() ) en de geboortedatum.
Frank hier was ik al uit ja.
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");
[size=xsmall]Toevoeging op 12/02/2015 22:54:12:[/size]
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!