在DateSk中处理整数

时间:2014-10-18 18:05:04

标签: sql-server

我有一个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的整数值

1 个答案:

答案 0 :(得分:0)

如果我的理解没有错(确定输入值是否为有效日期?)

USE ISDATE(expression)功能:
EX:

   DECLARE @datestring varchar(8)  
    SET @datestring = '12/21/98'  
    SELECT ISDATE(@datestring)  

同样在开头的Function中检查输入参数 如果ISDATE()在你的情况下返回0,则引发错误或改变func中的流程。