如何将日期传递给存储过程?
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
我有以下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