Der BETWEEN-Operator ist inklusive.
Aus Books Online:
BETWEEN gibt TRUE zurück, wenn der Wert von test_expression größer oder gleich dem Wert von begin_expression und kleiner oder gleich dem Wert von end_expression ist.
DateTime-Vorbehalt
NB:Bei DateTimes müssen Sie vorsichtig sein; wenn nur ein Datum angegeben ist, wird der Wert von Mitternacht an diesem Tag genommen; Um zu vermeiden, dass Zeiten innerhalb Ihres Enddatums fehlen oder die Erfassung der Daten des folgenden Tages um Mitternacht in mehreren Bereichen wiederholt wird, sollte Ihr Enddatum 3 Millisekunden vor Mitternacht am Tag nach Ihrem Bis-Datum liegen. 3 Millisekunden, da bei weniger als diesem Wert am nächsten Tag auf Mitternacht aufgerundet wird.
z.B. Um alle Werte innerhalb von Juni 2016 zu erhalten, müssen Sie Folgendes ausführen:
where myDateTime between '20160601' and DATEADD(millisecond, -3, '20160701')
d.h.
where myDateTime between '20160601 00:00:00.000' and '20160630 23:59:59.997'
datetime2 und datetimeoffset
Wenn Sie 3 ms von einem Datum abziehen, werden Sie anfällig für fehlende Zeilen aus dem 3-ms-Fenster. Die richtige Lösung ist auch die einfachste:
where myDateTime >= '20160601' AND myDateTime < '20160701'