これは簡単なことだと思いますが、私は問題にぶつかり続けています。日付範囲の間にあるテーブルからすべてのデータを返したいだけです。しかし、日付範囲はオプションにしたいです。
ALTER PROCEDURE [dbo].[sp_ExistingPlacements_Get]
@DateFrom DATE = NULL,
@DateTo DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT *
FROM tblExistingPlacements
WHERE
CreatedDT > COALESCE(NULLIF(@DateFrom, ''), @DateFrom)
AND
CreatedDT < COALESCE(NULLIF(@DateTo, GETDATE()), @DateTo)
END
したがって、日付が渡されない場合は、テーブル全体が返されます。
開始日(DateFrom)のみが渡された場合、行>開始日および現在の日付までのすべてを返します。
終了日(DateTo)のみが渡された場合は、すべての行を返します<終了日
そしてもちろん、両方の日付が渡された場合は、それらの日付の間のすべての行を返します。
COALESCEで間違ったルートを進んでいますか?