2016-04-17 4 views
2

Я пытаюсь создать функцию, которая будет печатать информацию о игре, когда пользователь вводит дату начала и дату окончания в качестве параметра. Он покажет информацию о игре, если дата игры находится между начальной и конечной датой. Я решил использовать функцию с табличной оценкой.Создание функций в SQL Server?

До сих пор у меня есть:

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 как и где в заявлении объявить его. Благодаря!

ответ

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 заявление!

+2

Хорошие визуальные эффекты! : D –

Смежные вопросы