I am trying to calculate the age
based on the birthDate in MySQL using SQL statement.
My birthDate was varchar() and in this format: 29/11/1994 (DD/MM/YYYY).
My SQL statement:
SELECT DATEDIFF(YY, birthDate, GetDate()) AS Age FROM bookedevent be INNER JOIN account a ON be.bookedEventBY = a.accountName WHERE a.accountID = 1
However, when I test in MySQL workbench, I am getting this error message: Incorrect parameter count in the call DATEDIFF.
ANy guides?
Thanks in advance.
Advertisement
Answer
You are using SQL Server syntax in MySQL. That won’t work. You can use TIMESTAMPDIFF()
:
SELECT TIMESTAMPDIFF(YEAR, birthDate, CURDATE()) AS Age FROM bookedevent be INNER JOIN account a ON be.bookedEventBY = a.accountName WHERE a.accountID = 1;
Note that the semantics for TIMESTAMPDIFF()
are different than for DATEDIFF()
in SQL Server. However, TIMESTAMPDIFF()
is probably closer to what you really want.