我是mysql的新手,我的代码有这个问题
CREATE FUNCTION fnejEdad_Obtener
(
p_fechaNacimiento date,
p_fechaHoy date
)
RETURNS int
BEGIN
declare v_edad int;
set v_edad = TIMESTAMPDIFF (year,p_fechaNacimiento, p_fechaHoy);
if (DATEPART(month, p_fechaNacimiento) > DATEPART(month,p_fechaHoy))
then
set v_edad = v_edad - 1;
else if
(DATEPART
(month, p_fechaNacimiento) <= DATEPART
(month,p_fechaHoy)) and
(DATEPART
(DAY, p_fechaNacimiento) > DATEPART
(DAY,p_fechaHoy))
then
set v_edad = v_edad - 1;
end
if;
IF v_edad < 0 THEN
SET v_edad = 0;
END
IF; -- > update
RETURN v_edad;
END;
答案 0 :(得分:0)
您的功能必须如下。 Elseif必须写在一起。
DELIMITER //
CREATE FUNCTION fnejEdad_Obtener
(p_fechaNacimiento date,p_fechaHoy date)
RETURNS int
BEGIN
declare v_edad int;
set v_edad = TIMESTAMPDIFF(year,p_fechaNacimiento, p_fechaHoy);
if (DATEPART(month, p_fechaNacimiento) > DATEPART(month,p_fechaHoy)) then
set v_edad = v_edad - 1;
elseif
(DATEPART(month, p_fechaNacimiento) <= DATEPART(month,p_fechaHoy)) and
(DATEPART(DAY, p_fechaNacimiento) > DATEPART(DAY,p_fechaHoy)) then
set v_edad = v_edad - 1;
end if;
IF v_edad < 0 THEN
SET v_edad = 0;
END IF; -- > update
RETURN v_edad;
END
//
DELIMITER ;