mysql - 如何修复“MySQL 1064 错误语法工作台”
问题描述
我是 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;
解决方案
您的功能必须如下。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 ;
推荐阅读
- node.js - nodejs 找不到我自己的模块关联到父路径
- android - gradle 升级到 3.0.0+ 后子模块资源不渲染
- java - spring amqp 当rabbitmq server和consumer出现网络故障时,抛出AmqpIOException,consumer不重试
- c# - ASP.Net MVC 5 在浏览器中从字节 [] C# 渲染 PDF
- angular - JHipster 与自定义主题的集成
- jquery - 如何将第 n 个子样式应用于过滤的 div 集?
- javascript - 如果字符串等于“”空,则不要将值传递给组件
- c++ - 多流迭代器 C++
- android - executorservice 运行最后添加的任务
- ios - 应用程序如何知道它有权进入自主单一应用程序模式(ASAM)?