用户定义的函数 sql,关键字 'return' 附近的语法不正确

User defined function sql, Incorrect syntax near the keyword 'return'

我正在尝试编写一个函数,它接受一个日期的输入,并计算当前日期和输入日期之间的差异,然后 returns 它作为天数的整数。 (所以如果我昨天输入 2015-5-8 它 returns 1)。到目前为止,我收到此错误并且无法真正弄清楚出了什么问题。感谢任何帮助。

CREATE FUNCTION DnevnaRazlika
(@OdKdaj nvarchar(15))
RETURNS INT 
AS
BEGIN 
declare @return INT
select @return = DATEDIFF(day,@OdKdaj, CONVERT(date,GETDATE()))
end
return @return 
end

编辑:使用 Microsoft SQL management studio

太多 ends。试试下面的代码

CREATE FUNCTION DnevnaRazlika ( @OdKdaj NVARCHAR(15) )
RETURNS INT
AS 
    BEGIN 
        DECLARE @return INT
        SELECT  @return = DATEDIFF(day, @OdKdaj, CONVERT(DATE, GETDATE()))
        RETURN @return 
    END

这里的问题是你有两次结束

CREATE FUNCTION DnevnaRazlika
(@OdKdaj nvarchar(15))
RETURNS INT 
AS
BEGIN 
declare @return INT
select @return = DATEDIFF(day,@OdKdaj, CONVERT(date,GETDATE()))
--end remove this end than it will work 
return @return 
end
create Function a123(@a Int,@b Int) returns Int as 
begin 
    return (@a + @b)
end

select dbo.a123(30,20)