Ik zit de hele dag al te zoeken, maar kom er niet uit
Ik wil een maand "05" opslaan in een database.
Zodra ik tinyint gebruik, dan maakt hij er automatisch "5" van.
Wie kan mij zeggen welke type ik moet gebruiken?
Als je zeker weet dat je ook die nul in de database wilt hebben dat moet je er tekst van maken en gebruik je dus char of varchar. Maar wat is het nut, het is in feite een getal. Die nul is slechts visueel.
Leeftijd berekenen laat je toch gewoon door MySQL doen? ;-)
?
Onbekende gebruiker
27-08-2009 19:23
Willem vp schreef op 27.08.2009 18:03
Leeftijd berekenen laat je toch gewoon door MySQL doen? ;-)
Idd, daarvoor heb je dus ook het jaar en de dag nodig. Dus heb je een veld nodig van het type date.
Verder is het niet nodig dat een 0 voor een getal in de db wordt opgeslagen, dit heeft met de opmaak te maken en kan je met [php]sprintf[/php] goed krijgen.
Ik ben zelf niet zo gek op berekeningen die afhankelijk zijn van de opmaak ;-)
De volgende methode is misschien ietwat omslachtig, maar maakt tenminste geen aannames over je datumformaat:
SELECT YEAR(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(geboortedatum))) AS leeftijd FROM members;
Hier worden de huidige datum en de geboortedatum omgerekend naar het aantal dagen sinds het jaar 0, daar wordt het verschil tussen berekend, en dat wordt weer omgezet naar een datum. Je weet dan hoeveel jaar, maanden en dagen die persoon is. Het jaartal (op te vragen met YEAR()) is dan de leeftijd in jaren.