Isso é muito antigo, mas, com muitas experiências que tive com datas, você pode considerar o seguinte: as pessoas usam configurações regionais diferentes; portanto, algumas pessoas (e alguns bancos de dados / computadores, dependendo das configurações regionais) podem ler isso 12/11/2016 como 11 de dezembro de 2016 ou 12 de novembro de 2016. Ainda mais, 16/11/12 fornecido ao banco de dados MySQL será convertido internamente para 12 de novembro de 2016, enquanto o banco de dados do Access executado em um computador de configuração regional do Reino Unido interpretará e armazená-lo como 16 de novembro de 2012.
Portanto, tornei minha política explícita sempre que vou interagir com datas e bancos de dados. Por isso, sempre forneço minhas consultas e códigos de programação da seguinte maneira:
SELECT FirstName FROM Students WHERE DoB >= '11 Dec 2016';
Observe também que o Access aceitará o #, assim:
SELECT FirstName FROM Students WHERE DoB >= #11 Dec 2016#;
mas o MS SQL Server não, então eu sempre uso "'" como acima, que ambos os bancos de dados aceitam.
E ao obter essa data de uma variável no código, eu sempre converto o resultado em string da seguinte maneira:
"SELECT FirstName FROM Students WHERE DoB >= " & myDate.ToString("d MMM yyyy")
Estou escrevendo isso porque sei que algumas vezes alguns programadores podem não estar interessados o suficiente para detectar a conversão inerente. Não haverá erro para datas <13, apenas resultados diferentes!
Quanto à pergunta, adicione um dia à última data e faça a comparação da seguinte forma:
dated >= '11 Nov 2016' AND dated < '15 Nov 2016'