在SQL中的Function中运行SELECT语句

时间:2014-03-07 22:05:23

标签: mysql sql

我试图在这样的函数中使用select语句:

CREATE FUNCTION get_Id (d DATE) RETURNS INTEGER
BEGIN
DECLARE @retval INTEGER
SELECT id 
    from date_store c
    WHERE c.start_date <= d && c.end_date >= d
RETURN @retval
END

我不确定我是否已正确编写此功能,因为我无法运行它。基本上我需要的是调用这个函数,以便根据表date_store中给出的日期范围获取id。

我是SQL新手。

1 个答案:

答案 0 :(得分:1)

SQL中不存在条件&&。请改用AND。 您还需要使用SELECT id INTO @retval分配返回的变量。 也可以用INT替换INTEGER,不要忘记分号。 它将是这样的(未经测试)

CREATE FUNCTION get_Id (d DATE) RETURNS INT
BEGIN
DECLARE @retval INT;
SELECT id INTO @retval
    FROM date_store c
    WHERE c.start_date <= d AND c.end_date >= d;
RETURN @retval;
END

MySQL function with SELECT statment