Esto es muy antiguo, pero dada la gran cantidad de experiencias que he tenido con las fechas, es posible que desee considerar esto: las personas usan diferentes configuraciones regionales, como tal, algunas personas (y algunas bases de datos / computadoras, dependiendo de la configuración regional) pueden leer esto fecha 11/12/2016 como 11 de diciembre de 2016 o 12 de noviembre de 2016. Aún más, el 16/11/12 suministrado a la base de datos MySQL se convertirá internamente al 12 de noviembre de 2016, mientras que la base de datos de Access que se ejecuta en una computadora de configuración regional del Reino Unido interpretará y guárdelo como el 16 de noviembre de 2012.
Por lo tanto, hice que mi política sea explícita cada vez que voy a interactuar con fechas y bases de datos. Así que siempre proporciono mis consultas y códigos de programación de la siguiente manera:
SELECT FirstName FROM Students WHERE DoB >= '11 Dec 2016';
Tenga en cuenta también que Access aceptará el #, por lo tanto:
SELECT FirstName FROM Students WHERE DoB >= #11 Dec 2016#;
pero el servidor MS SQL no lo hará, por lo que siempre uso "'" como se indicó anteriormente, que ambas bases de datos aceptan.
Y cuando obtengo esa fecha de una variable en el código, siempre convierto el resultado en una cadena de la siguiente manera:
"SELECT FirstName FROM Students WHERE DoB >= " & myDate.ToString("d MMM yyyy")
Estoy escribiendo esto porque sé que a veces algunos programadores pueden no estar lo suficientemente interesados en detectar la conversión inherente. No habrá errores para las fechas <13, ¡solo resultados diferentes!
En cuanto a la pregunta formulada, agregue un día a la última fecha y haga la comparación de la siguiente manera:
dated >= '11 Nov 2016' AND dated < '15 Nov 2016'