我有以下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:我已经尝试过两次之间,但结果相同
答案 0 :(得分:0)
使用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