美好的一天,我在存储过程中收到2个可以为空的日期参数。 @StartDate和@EndDate。如果这两个参数为NULL,我需要正常执行我的过程,否则@StartDate参数必须是> =我的StartDateTime值和@EndDate参数需要是< =我的EndDateTime值。 下面是我想要完成但不确定语法的片段。
FROM DI_Intervention_Schedule S
WHERE
(
@ID IS NULL
OR S.[ID] = @ID
)
AND (
CASE @StartDate WHEN IS NOT NULL THEN
@StartDate >= S.[StartDateTime] AND @EndDate <= S.[EndDateTime]
END
)
请帮忙吗?
答案 0 :(得分:1)
尝试以下代码:
FROM DI_Intervention_Schedule S
WHERE
(S.[ID] = @ID OR @ID IS NULL)
AND (( S.[StartDateTime] >= @StartDate AND S.[EndDateTime] <= @EndDate) OR @StartDate IS NULL )