我有一个存储过程,目前只是假设将您的字符串输入验证为有效日期。我尝试在程序之外运行它,它工作完美,但是一旦我将其放入程序中,参数就会更改为零。
我的程序如下:
CREATE PROCEDURE spDateRange
@DateMin varchar = NULL,
@DateMax varchar = NULL
AS
PRINT @DateMin;
PRINT @DateMax;
IF @DateMin IS NOT NULL AND @DateMax IS NOT NULL
BEGIN
PRINT @DateMin;
IF(ISDATE(@DateMin)=1 AND ISDATE(@DateMax)=1)
PRINT 'Valid Date';
ELSE
RAISERROR('Parameters not date format', 10, 1);
END
ELSE
RAISERROR ('Invalid parameters', 10, 1);
我的执行语句是:
EXECUTE spDateRange @DateMin='01/11/2011', @DateMax='01/12/2011';
我的输出是:
0
0
0
Parameters not date format
您需要给出明确的长度varchar
参数。默认为 1 个字符。
char(10)
对于有效日期应该足够了dd/mm/yyyy
格式,但我想您可能需要更长的时间,因为这是验证可能无效的日期!
CREATE PROCEDURE spDateRange
@DateMin varchar(30) = NULL,
@DateMax varchar(30) = NULL
AS
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)