Query con DateTime

Tengo esta query que me da el siguiente problema:
###########
SELECT campo1,campo2,etc
FROM tabla1
WHERE (
campo1=valor1 AND campo2=valor2 [...] AND (campofecha >='2002/12/17 0:0:0') AND (campofecha <='2002/12/19 0:0:0')
)
ORDER BY campoX
Donde campofecha es un campo de tipo datetime
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
###########
¿Por qué es esto?
¿Se puede mejorar esta query?
¿Dónde encuentro información del lenguaje sql para SQLServer?

1 Respuesta

Respuesta
1
En primer lugar, ten en cuenta que el formato de la fecha depende del idioma. Asegurate del idioma con el que conectas, lo puedes especificar en la conexión.
Para mejorar la consulta, utiliza el método BETWEEN, es mucho más rápido.
Por último, si quieres asegurarte que va a tomar bien la fecha, conviértela antes a datetime con convert. Para el formato que tu tienes, tendría que ser:
CONVERT (datetime, '2002/12/17' , 111)
El 111 depende del formato de la fecha (hay una tabla muy buena en la ayuda)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas