O operador BETWEEN é inclusivo.
Dos livros on-line:
BETWEEN retornará TRUE se o valor detest_expression for maior ou igual ao valor de begin_expression e menor ou igual ao valor de end_expression.
Advertência de data e hora
NB:Com DateTimes é preciso ter cuidado; se for indicada apenas uma data, o valor é considerado a partir da meia-noite desse dia; para evitar tempos perdidos em sua data de término ou repetir a captura dos dados do dia seguinte à meia-noite em vários intervalos, sua data de término deve ser 3 milissegundos antes da meia-noite do dia seguinte à sua data de término. 3 milissegundos porque menos que isso e o valor será arredondado para a meia-noite do dia seguinte.
por exemplo. para obter todos os valores em junho de 2016, você precisaria executar:
where myDateTime between '20160601' and DATEADD(millisecond, -3, '20160701')
ou seja
where myDateTime between '20160601 00:00:00.000' and '20160630 23:59:59.997'
datetime2 e datetimeoffset
Subtrair 3 ms de uma data o deixará vulnerável à falta de linhas da janela de 3 ms. A solução correta também é a mais simples:
where myDateTime >= '20160601' AND myDateTime < '20160701'