Sql-Server-2016
使用 BETWEEN 排除日期
我正在嘗試使用 BETWEEN 函式來排除兩個參數日期之間的日期,但我目前的程式碼也排除了 NULL 的出現。我有一個查詢,其中包括可能包含或不包含“關閉日期”的帳戶記錄。我目前的程式碼部分有效,但我不希望它排除根本不包含 Closed Date 的 NULL 記錄。
WHERE ta.ROW_PROCESSED_THRU = '20190731' AND NOT CONVERT (VARCHAR(10),ta.CLOSED_DATE,112) BETWEEN '20190701' AND '20190731'
AND (NOT (ta.CLOSED_DATE >= '20190701' AND ta.CLOSED_DATE < '20190801') OR ta.CLOSED_DATE IS NULL)
要包含 NULL,您需要添加顯式 NULL 謂詞。此外,轉換函式可能會顯著降低查詢的性能,更好的是使用兩個謂詞顯式聲明日期範圍:
AND ( NOT (ta.CLOSED_DATE >= '20190701' AND ta.CLOSED_DATE < '20190801') OR ta.CLOSED_DATE IS NULL)
高溫高壓