, поэтому у меня возникли некоторые проблемы с использованием функции в SQL, где я вычисляю возраст с учетом определенной даты. Дело в том, что мне нужно подтвердить текущую дату и дату рождения, если это уже год или нет.
Например, у меня в реестре дата 1994-11-15 и при обращении к информации с
select EmployeeID Num_Emloyee, concat(FirstName, " . ", LastName) Name_Employee, Title Puesto, fn_Age(BirthDate) Edad, fn_Age(HireDate) WorkYears
from employees;
Возвращает 24, однако, если я проконсультируюсь только с выбором функции, возвращается 23, правильный ответ.
На данный момент это функция, которую я использую для проверки возраста:
create function fn_Age(dateVal date)
returns int
begin
declare age int;
if day(now()) and month(now()) >= day(dateVal) and month(dateVal) then
set age=year(now())-year(dateVal);
else
set age=(year(now())-year(dateVal)) - 1;
end if;
return age;
end
Есть ли что-то, что я не рассматриваю в функции?