调用自定义SQL函数

时间:2011-06-13 23:25:26

标签: sql sql-server-2008

这感觉就像一个基本问题,但我已经尝试了一切!我正在编写一个自定义函数SQL函数来将整数转换为日期:

CREATE FUNCTION convert_to_date (@fin INT)
RETURNS DATE
AS
BEGIN
    DECLARE @fout DATE
    SET @fout = CASE WHEN @fin IN ('','99999999','0','1') THEN NULL
        ELSE CONVERT(DATE,CAST(@fin AS CHAR(8)))
        END
    RETURN @fout
END

SELECT dbo.convert_to_date(DtSurgDischarge) AS DischargeDate
FROM [TR_MASTER.registry].[dbo].[mgh_tumor]

我收到以下错误消息:

  

消息156,级别15,状态1,过程convert_to_date,第16行   关键字'SELECT'附近的语法不正确。

我做错了什么?这样的感觉一定很明显。谢谢大家!

1 个答案:

答案 0 :(得分:0)

如果您尝试在一个脚本中同时执行函数create和GO,则至少需要在END函数语句之后SELECT - < em>假设你正在使用SSMS来运行脚本,即。

CREATE FUNCTION convert_to_date (@fin INT)
RETURNS DATE
AS
BEGIN
    DECLARE @fout DATE
    SET @fout = CASE WHEN @fin IN ('','99999999','0','1') THEN NULL
        ELSE CONVERT(DATE,CAST(@fin AS CHAR(8)))
        END
    RETURN @fout
END

GO

SELECT dbo.convert_to_date(DtSurgDischarge) AS DischargeDate
FROM [TR_MASTER.registry].[dbo].[mgh_tumor]