【问题标题】:User defined function sql, Incorrect syntax near the keyword 'return'用户定义的函数 sql,关键字“return”附近的语法不正确
【发布时间】:2015-07-19 03:01:43
【问题描述】:

我正在尝试编写一个函数,该函数接受一个日期的输入,并计算当前日期与输入日期之间的差异,然后将其作为天数的整数返回。 (所以如果我昨天输入 2015-5-8 它返回 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 管理工作室

【问题讨论】:

    标签: sql-server tsql stored-functions


    【解决方案1】:
    create Function a123(@a Int,@b Int) returns Int as 
    begin 
        return (@a + @b)
    end
    
    select dbo.a123(30,20)
    

    【讨论】:

    • 答案也应该包括一个小的解释,即使是非常简单的。
    【解决方案2】:

    太多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
    

    【讨论】:

    • @MihaŠušteršič 很高兴能为您提供帮助。
    • 这个答案很有帮助,因为它告诉我问题确实是语法(尽管我的原因不同。)。谢谢
    【解决方案3】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 1970-01-01
      • 2016-06-08
      • 2014-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多