调用自定义SQL函数
这感觉像是一个基本的问题,但我什么都试过了!我正在编写一个自定义函数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
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分钟内接受。