La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/SQL-Server/546699-AYUDA-URGENTE.html

AYUDA URGENTE!!!!!!!!

AYUDA URGENTE!!!!!!!!

Publicado por eljhonb (124 intervenciones) el 20/09/2005 00:38:44
Buenas tengo el siguiente problema, Cuando trato de insertar en una tabla que contiene un campo llamado F_Entrega que es de tipo datetime, me aparece el siguiente error "Servidor: mensaje 242, nivel 16, estado 3, línea 1
La conversión del tipo de datos char a datetime produjo un valor datetime fuera de intervalo.
Se terminó la instrucción.". La instrucción con la que estoy insertando es:

insert into Prestamo_Usuario (F_Prestamo,Identificacion,Nombre,Inventario) values('2005/19/09',98633497,'AIROTOR',33580).

No entiendo cuàl es el problema, he intentado cambiando el formato de la fecha a insertar de varias formas ('20051909', '09/19/2005'......) y nada de la única manera que deja ejecutar la instrucción es darle la fecha sin las comillas pero en la tabla me inserta con la siguiente fecha: 01/01/1900. Las consultas por fecha que desee ejecutar en esta tabla solo las aceptos si el formato de la fecha es 'YYYYMMDD'.

AYUNDENME POR FAVOR, estoy embalado y es algo urgente.....

Jhon Betancur
Medellín, Colombia

RE:AYUDA URGENTE!!!!!!!!

Publicado por @dece (1 intervención) el 20/09/2005 01:57:52
Hola;
el Campo que estas insertando es F_Prestamo y el que dices es F_Entrega ?

Sin embargo..

Ya has intentado:
SET DATEFORMAT ymd
GO
insert into Prestamo_Usuario (F_Prestamo,Identificacion,Nombre,Inventario) values('20051909',98633497,'AIROTOR',33580).
go

Saludos

@dece

RE:AYUDA URGENTE!!!!!!!!

Publicado por Carlos Rojas (1 intervención) el 27/10/2006 06:06:00
Amigo, nada mas quitale las comillas a la fecha.......y de seguro te sirve

RE:AYUDA URGENTE!!!!!!!!

Publicado por Omar (1 intervención) el 28/10/2009 16:46:32
Si bien el usar
SET DATEFORMAT ymd

Ayuda hay que menciinar que esta instruccion provoca la recompilacion del procedimiento almacenado cada vez que este se ejecuta, si el tiempo que puede provocar eso no importa al proceso serviria.

Pero en otro foro acabo de encontrar esto y funciona impecable.

Código: select cast('2007-08-28 23:59:59'as smalldatetime)as Fecha
Da error:
La conversión del tipo de datos char a smalldatetime generó un valor smalldatetime fuera de intervalo.

Pero esto:
Código: select cast('20070828 23:59:59'as smalldatetime)as Fecha
Pasa impecable.

Se podria entonces concluir, que talvez el ANSI se refiere a 'AAAAMMDD' y no a 'AAAA-MM-DD'. Esto se basa en el query mencionado arriba, es decir si usan 'AAAA-MM-DD' funcionara ok para el SQL ver.Ingles, pero veran que les dara error en el SQL ver.Castellano, y viceversa si usan 'AAAA-DD-MM' funciona ok para SQL ver.Castellano y da error en SQL ver.Ingles. Pero si usamos el mismo query con 'AAAAMMDD' veran que funciona para ambos idiomas.