0

こんにちは、ストアドプロシージャで2つのnull許容の日付パラメータを受け取ります。@StartDateおよび@EndDate。これらの2つのパラメーターがNULLの場合は、通常どおりプロシージャを実行する必要があります。そうでない場合は、@StartDateパラメーターが>= my StartDateTime値であり、@EndDateパラメーターが<=myEndDateTime値である必要があります。以下は、私が達成しようとしていることの抜粋ですが、構文がわかりません。

    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 に答える