我尝试创建一个功能,当用户输入开始日期和结束日期作为参数时,该功能将打印游戏信息。如果游戏日期在开始日期和结束日期之间,它将显示游戏信息。我决定使用表值函数。
到目前为止,我有:
CREATE FUNCTION fn_gamedate
(@InputStartDate DATETIME,
@InputEndDate DATETIME)
RETURNS TABLE
AS
RETURN
(SELECT *
FROM Game
WHERE Game.[Date] Between @StartDate AND @EndDate)
我尝试运行时遇到的错误是
必须声明标量变量" @ StartDate"。
我对于声明@startdate
和@enddate
以及声明声明的位置感到困惑。谢谢!
答案 0 :(得分:8)
参数被称为@InputStartDate
,但在代码中,您使用@StartDate
- 请下定决心!
试试这个:
CREATE FUNCTION fn_gamedate
(@InputStartDate DATETIME, <--------+
@InputEndDate DATETIME) | these two need to MATCH!
RETURNS TABLE |
AS |
RETURN |
(SELECT * |
FROM Game |
WHERE Game.[Date] Between @InputStartDate AND @InputEndDate)
如果您将参数命名为 @InputStartDate
,则必须在T-SQL语句中使用相同的名称!