Por Geymer Morales Cruz

Compartiendo Información...

Error de fechas en SQL Server (The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.)

Bueno primero que todo no es un error como tal, básicamente el título es así porque normalmente cuando a nosotros no nos funciona algo lo llamamos error.
Pues bien talvez este post no sea la gran cosa pero para aquellos que están empezando les ayudara bastante. Primero comentarles que no es un error es más bien configuración Regional y de idioma en nuestro SQL. Teniendo claro esto muestro el error que comúnmente se da al intentar grabar una fecha:

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

La solución es fácil, para evitar estos inconvenientes hacemos o verificamos lo siguiente:

1-    En el servidor, utilizando el SQL Server Management Studio, vamos a Seguridad –> Inicios de Sesión y verificamos que el usuario con que estamos conectando a la base de datos, tenga como idioma predeterminado English.


Claro está que en mi caso estoy utilizando en mis aplicaciones el idioma Ingles, pero si ustedes están utilizando español por ejemplo entonces cambiarían al de ustedes.

2-    En el servidor, donde se aloja la base de datos, configuramos en Panel de Control –> Configuración Regional y de Idioma: English(Cambiarlo en el caso que ustedes utilicen otro idioma)

3-    En la maquina cliente, configuramos en Panel de Control –> Configuración Regional y de Idioma: English(Cambiarlo en el caso que ustedes utilicen otro idioma)

4-    Verifiquemos que la cadena de conexión de nuestra aplicación utilice ese usuario.
Bien estos son los pasos a seguir para configurar nuestro servidor y para que no nos muestre el error The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

Por otra parte también podemos configurar el formato fecha dentro del server, esto lo puedes encontrar en el siguiente vínculo: http://support.microsoft.com/kb/173907/es
Claro está que todo lo anterior se puede automatizar en nuestras aplicaciones, sencillamente lo que deberíamos de hacer es que al iniciar nuestras APP estas detecten la configuración regional de nuestro servidor o el idioma y a partir de eso hacer nuestras consultas o inserciones, pero para los que están iniciando espero este pequeño post les sean de gran ayuda.

 Espero les sea de utilidad, comenten o compartan así todos aprendemos… saludos.

9 comentarios:

Jose Oviedo dijo...

Gracias :)

En propiedades del usuario, cambie ingles por español y listo!!!!

Diego Iribarren dijo...

Me ha sido muy util esta información, gracias a ti puedo continuar con mi proyecto, te deseo lo mejor y espero que sigas actualizando tu blog. saludos

Rodney Guillén dijo...

Muy buena solucion!!, me ha servido bastante

Anónimo dijo...

Me salvastes la jornada amigo

Santiago Indacochea dijo...

Muchas gracias!! cuando guardaba los registros con la fecha actual me aparecía este "error", tenía que poner la fecha de un mes anterior al actual para que no aparezca el "error".

Santiago Campero dijo...

Excelente post, muchas gracias por compartir tus conocimientos

Tutoriales Hackro dijo...

en mi caso funcionaba bien en el gestor pero cuando intentaba consumirlo con un servicio rest fallaba y era porque la region del server donde se alojaba el servicio estaba mal,otra solucion es mandar la fecha en el mismo formato,por ejemplo

--> 15-09-1992
pero debes mandarlo asi
1992-15-09
es unicamente un ejemplo,suerte!

Anónimo dijo...

Eres grande amigo, enserio, chingon, te lusiste mi rey, GRACIAS. me salvaste de un problemon

Anónimo dijo...

Me has salvado de un problema muuuuy grande, infinitas gracias por esa solución.