Ik bots tegen een raar probleem aan... Bij het gebruiken van de volgende code:

TIMESTAMPDIFF(YEAR,geboortedatum, NOW()) AS leeftijd


Krijg ik op mijn lokale server mooi de leeftijd (MySQL 4.1.7), terwijl ik op mijn host een error krijg (MySQL 4.1.12). Nochtans hebben zij een hogere MySQL versie...

De error:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( YEAR , geboortedatum , NOW( ) ) AS leeftijd at line 1


Iemand een idee waar de fout ligt? Of een betere oplossing om een leeftijd te berekenen?

Thanks :)
Bump, bewust voor 24u... ;)
Jan koehoorn had een oplossing zonder mysql...
http://www.jankoehoorn.nl/phphulp/leeftijd.php

mysql> SELECT name, birth, CURDATE(),
-> (YEAR(CURDATE())-YEAR(birth))
-> - (RIGHT(CURDATE(),5)<RIGHT(birth,5))
-> AS age
-> FROM tabel_name;

dit kwam ik net nog ergens tegen
Uiteraard, maar waarom zou ik het zonder MySQL doen, als MySQL voorzien is van allerlei data functies? Zonder MySQL is een noodoplossing in dit geval, maar ik verkies liever mét. Aangezien het op mijn lokale server wel lukt, begrijp ik niet waarom het bij mijn host niet lukt...
Ik vrees dat je het niet op een gemakkelijkere manier kunt doen. TIMESTAMPDIFF is pas beschikbaar gekomen bij MySQL v5.0.0 (zie documentatie) en als het in een eerdere versie al bestaat, dan is dat "per ongeluk" en mag je er dus niet op vertrouwen dat het op andere servers ook beschikbaar is.
TIMESTAMPDIFF() is available as of MySQL 5.0.0.


Daar had ik dus overgelezen, bedankt Willem vp. Wel balen dat dit dan weer wel lokaal werkt, of ik heb wel een hogere MySQL versie dan ik dacht. Verder zoeken dan maar..

Reageren