I created a database of employees and contains the date of birth with varchar format (31-12-2016) or d-m-Y. I want to find employees with ages 58 and above. I use this query :
$age=mysql_db_query($db,"select * from employees where round(datediff(str_to_date(birth_day,'%d-%m-%Y'), curent_date())/365) > 58",@$koneksi);
$birth = mysql_num_rows($birth);
with the above query does not display anything. what is wrong with the query ??
thanks in advance . . .
Use of abs()
will give absolute value of a number. Your query returns negative values so you were not getting correct records.
Try to use below query :
select *
from employees
where abs(round(datediff(str_to_date(birth_day,'%d-%m-%Y'), current_date())/365)) > 58"
Also you had used curent_date
inplace of current_date()