我認爲這應該很簡單,但我仍然遇到問題。 我只想返回位於日期範圍之間的表中的所有數據。但我希望日期範圍是可選的。如何在SQL Server中傳遞可選的日期參數
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),則返回rows>開始日期和所有直到當前日期。
如果只有結束日期(dateTo)方法被傳遞,然後返回所有行<結束日期
當然,如果這兩個日期都過去了,其間返回這些日期的所有行。
我是否與COALESCE走錯了路線?
謝謝你,Remus。 是的 - 我從來沒有真正使用*,但這是爲了方便解釋我的問題。 – wotney 2013-03-27 12:30:31