Esto es muy antiguo, pero teniendo en cuenta una gran cantidad de experiencias que he tenido con las fechas, puede que desee tener en cuenta lo siguiente: La gente usa diferentes configuraciones regionales, como tal, algunos las personas (y algunas bases de datos/computadoras, según la configuración regional) pueden leer esta fecha el 11/12/2016 como el 11 de diciembre de 2016 o el 12 de noviembre de 2016. Aún más, el 16/11/12 proporcionado a la base de datos MySQL se convertirá internamente a 12 Nov 2016, mientras que la base de datos Access que se ejecuta en una computadora de configuración regional del Reino Unido lo interpretará y almacenará como 16 de noviembre de 2012.
Por lo tanto, establecí mi política de ser explícito cada vez que voy a interactuar con fechas y bases de datos.Así que siempre suministrar 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, así que siempre utilice " ' "como arriba, que ambas bases de datos aceptan.
Y al conseguir que la fecha a partir de una variable en el código, siempre convertir el resultado en 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 ser lo suficientemente agudo para detectar la conversión inherente No habrá ningún error para las fechas < 13, ¡solo diferentes resultados!
En cuanto a la pregunta hecha, añadir un día para la última fecha y hacer la comparación de la siguiente manera:
dated >= '11 Nov 2016' AND dated < '15 Nov 2016'
El Servidor SQL predetermina una fecha sin hora a 00:00:00. Entonces, ¿esta consulta no arrojará nada de 2011/02/25 y 2011/02/26 a la medianoche? – Matt
@Deepak, su segundo bit debería decir> = y <= – IndoKnight
Puede mencionar que el orden es importante en la función BETWEEN. Tiene que ir desde el más antiguo a la izquierda y más reciente a la derecha. Esto no es intuitivo ya que = es un operador comparativo en sql y funciona para "EmployeeId = 1" o "1 = EmployeeId" en la cláusula where. –