如何将日期传递给存储过程?

How to to pass a date to a stored procedure?

我有以下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

当我用一些参数执行它时,它是 returns me 2(我已经为我的日期 @Date = '2018-11-02' 使用了这个参数)所以我决定尝试在 select 语句中,和 select 语句 return 我一行,如果我把我的行与开始和结束日期放在评论中,我的 SP 工作 所以我知道我的麻烦来自约会 但是我不明白为什么

PS: 我已经尝试过使用 between 但结果是一样的

使用 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