Как передать дату хранимой процедуре? - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть следующий SP:

IF  EXISTS (SELECT * FROM [dbo].[Assignments] 
                WHERE ProjectId=@ProjectUID AND TaskId=@TaskUID AND ResourceId=@ResourceUID
                AND (StartDate <= @DATE AND FinishDate >= @DATE)
            )
BEGIN
        Return  1

END
ELSE
BEGIN
        Return 2
END

Когда я выполнил его с некоторыми параметрами, он возвращает мне 2 (я взял этот параметр для своей даты @Date = '2018-11-02'), поэтому я решил попробовать в операторе select, а оператор select возвращает мне строку, и если я поставлю свой Строка с датой начала и окончания в комментариях, мой SP работает Итак, я знаю, что моя проблема исходит от даты Но я не понимаю, почему

PS: я уже пробовал с интервалом, но результат тот же

1 Ответ

0 голосов
/ 05 сентября 2018

Сравните даты, используя даты в столбцах datetime:

IF EXISTS (
    SELECT * 
    FROM [dbo].[Assignments] 
    WHERE 
        ProjectId = @ProjectUID AND 
        TaskId = @TaskUID AND 
        ResourceId = @ResourceUID AND 
        (CONVERT(date, StartDate) <= @DATE AND CONVERT(date, FinishDate) >= @DATE)
)
BEGIN
    Return  1
END
ELSE 
BEGIN
    Return 2
END
...