Todo inicio con una simple búsqueda avanzada con criterio de filtrado entre fechas:
Se produjo un error al acceder a la base de datos
[Microsoft][ODBC Driver 13 for SQL Server][SQL Server]La conversión del tipo de datos varchar en datetime produjo un valor fuera de intervalo.
El error en SQL es el siguiente :
“The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
Este es el mensaje de error que muestra Scriptcase :
El campo de fecha en esta ocasión es de tipo DATETIME, luego fue cambiado a DATE con la esperanza de que al quitar la parte de la hora se solucionará el problema, y de nuevo obtenemos el siguiente mensaje de error:
Ya en este punto estábamos seguro que la causa del problema era una interpretación errónea del formato de fecha por parte del ODBC Driver, que estaba asumiendo el día por el mes y viceversa, es decir el ODBC Driver estaba asumiendo que el 13 era el més y que el 06 era el día en un formato ‘AAAA-DD-MM’.
En un claro intento de culpar a SC por el problema, revise la conexión a la base de datos, la que se mostraba de la siguiente manera:
Como podrás notar en la imagen no existe la posibilidad de tener un atributo que permita manipular el formato de la fecha, así que tuvimos que orientarnos por otro camino. Así que luego de buscar hasta en los Foros de Temas Espirituales, encontré un comentario en un foro en el que culpaban del problema el lenguaje por defecto (Default Language) con el que se configura el usuario cuando es creado en SQL Server, así que como buen latino, que probamos todos los remedios que nos dicen, de inmediato agredí al pobre usuario y lo cambie de Español a Ingles, tal y como lo muestra la siguiente imagen:
Sorpresa….
y muchas lágrimas de felicidad, eso soluciona el problema.
Aquí les dejo este aporte, para que no pasen por la misma experiencia.