Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用自定义SQL函数_Sql_Sql Server 2008 - Fatal编程技术网

调用自定义SQL函数

调用自定义SQL函数,sql,sql-server-2008,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 CHA

这感觉像是一个基本的问题,但我什么都试过了!我正在编写一个自定义函数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]
我收到以下错误消息:

Msg 156,第15级,状态1,程序转换为日期,第16行 关键字“SELECT”附近的语法不正确


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

如果您试图在一个脚本中执行函数create和
SELECT,那么在函数的
END
语句之后至少需要一个
GO
——假设您使用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]

完美的看,我告诉过你这是一个基本问题!现在我完全无法理解为什么我在谷歌搜索中找不到这一点。谢谢。@registrator-没问题,很高兴能为您提供帮助。GO从“选择”
“开始”中划分出“创建函数”——它表示一个批次的结束和另一个批次的开始。@注册官,如果您觉得威尔的答案解决了您的问题,请单击其左上角的复选框接受它answer@Abe米斯勒,我一直在努力。StackOverflow显然不允许接受,直到问题(或答案?)出现10分钟。有一个倒计时的小计时器告诉我,我可以在n分钟内接受。