Operator BETWEEN jest włącznie.
Z Książek online:
BETWEEN zwraca TRUE, jeśli wartość oftest_expression jest większa lub równa wartości begin_expression i mniejsza lub równa wartości ofend_expression.
Zastrzeżenie dotyczące daty i godziny
NB:Z DateTimes musisz być ostrożny; jeśli podana jest tylko data, wartość przyjmuje się od północy tego dnia; aby uniknąć pomijania godzin w dacie zakończenia lub powtarzania przechwytywania danych z następnego dnia o północy w wielu zakresach, data zakończenia powinna przypadać 3 milisekundy przed północą dnia następującego po dacie do daty. 3 milisekundy, ponieważ mniej niż to, a wartość zostanie zaokrąglona w górę do północy następnego dnia.
np. aby uzyskać wszystkie wartości w czerwcu 2016 r., musisz uruchomić:
where myDateTime between '20160601' and DATEADD(millisecond, -3, '20160701')
tj.
where myDateTime between '20160601 00:00:00.000' and '20160630 23:59:59.997'
datetime2 i datetimeoffset
Odjęcie 3 ms od daty narazi Cię na brakujące wiersze z okna 3 ms. Prawidłowe rozwiązanie jest również najprostsze:
where myDateTime >= '20160601' AND myDateTime < '20160701'