sql create function中的语法错误

时间:2014-04-07 07:56:03

标签: mysql sql

每当我尝试在mysql中创建以下函数时,我都会收到以下错误。 错误:您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第4行的''附近使用正确的语法

我的功能是

    CREATE FUNCTION GET_HOUR_MINUTES(seconds INT)
    RETURNS VARCHAR(16)
    BEGIN
    DECLARE result VARCHAR(16);
    IF seconds >= 3600 THEN SET result = TIME_FORMAT(SEC_TO_TIME(seconds),'%kh %lm');
    ELSE SET result = TIME_FORMAT(SEC_TO_TIME(seconds),'%lm');
    RETURN result;
    END

1 个答案:

答案 0 :(得分:1)

您需要在创建函数之前更改分隔符。如果不这样,您的CREATE语句将在第一个分号终止。

试试这个:

DELIMITER $$

CREATE FUNCTION GET_HOUR_MINUTES(seconds INT)
    RETURNS VARCHAR(16)
    BEGIN
    DECLARE result VARCHAR(16);
    IF seconds >= 3600 THEN SET result = TIME_FORMAT(SEC_TO_TIME(seconds),'%kh %lm');
    ELSE SET result = TIME_FORMAT(SEC_TO_TIME(seconds),'%lm');
    END IF
    RETURN result;
    END$$

DELIMITER ;

感谢@Ravinder捕获缺失的END IF。