我有一个DateSurragate Key列,我需要DateSurragate Key的周末列, 我创建了一个用户定义的函数
CREATE FUNCTION dbo.fn (@dt date)
RETURNS date
AS
BEGIN
DECLARE @result date
select @result = dateadd(week, datediff(week, 0, @dt), 4)
RETURN @result;
END;
GO
此函数适用于日期,但是当传递-1和-2之类的值时,它会给出NULL 请告诉我如何更改此功能,以便它可以处理我不熟悉tsql的整数值
答案 0 :(得分:0)
如果我的理解没有错(确定输入值是否为有效日期?)
USE ISDATE(expression)
功能:
EX:
DECLARE @datestring varchar(8)
SET @datestring = '12/21/98'
SELECT ISDATE(@datestring)
同样在开头的Function中检查输入参数 如果ISDATE()在你的情况下返回0,则引发错误或改变func中的流程。