Используйте правильную дату и NULL
логику. Вышеприведенное не совсем соответствует полной картине, но это должно показать вам, что делать:
WHERE DateColumn >= '20190101'
AND (DateColumn < '20191024'
OR DateColumn IS NULL)
Это вернет все строки, где DateColumn
включено или после 01 января 2019 года и до , но не включая 24 октября 2019 года или NULL
.
Я лично предпочитаю метод >=
AND <
, поскольку даты могут включать в себя время. Значение типа 2019-10-23T00:00:00.003
не равно <= '20191023'
(это спустя 3 миллисекунды). Точно так же, если бы вы использовали 20191024
в качестве верхней границы и использовали <=
, тогда вы могли бы получить нежелательные строки, которые встречаются точно в 2019-10-24T00:00:00.000
.
На основе OPДля выборочных данных, на самом деле кажется, что они хотят логического аннулирования:
WHERE DateColumn <= '20191024'
AND (DateColumn > '20190101'
OR DateColumn IS NULL)
Это вернет любую строку, которая была «активной» в любую дату в период с 01 января 2019 года по 23 октября 2019 года включительно.