0

美好的一天,我在存储过程中收到 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
        )

请问有什么帮助吗?

4

1 回答 1

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 )
于 2013-03-18T06:12:28.950 回答