Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

"The conversion..data type to a datetime ..."

Estas en el tema de "The conversion..data type to a datetime ..." en el foro de SQL Server en Foros del Web. Saludos a todos!!! Tengo este pequeño problemita... quiero almacentar datos en otra tabla (remota) y entre los datos que le envio al servidor esta una ...
  #1 (permalink)  
Antiguo 28/09/2005, 09:07
 
Fecha de Ingreso: octubre-2004
Mensajes: 142
Antigüedad: 19 años, 6 meses
Puntos: 0
"The conversion..data type to a datetime ..."

Saludos a todos!!!

Tengo este pequeño problemita... quiero almacentar datos en otra tabla (remota) y entre los datos que le envio al servidor esta una fecha... el error es el siguiente:

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

Se que es por la conversion de datos... ya intente algunas cosas pero aun sigue igual, Alguien que me de una respuesta?? Gracias!!!
  #2 (permalink)  
Antiguo 28/09/2005, 15:31
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
¿Que tipo de datos tienen ambas tablas?

Muchas veces campos de texto hacia datos tipo fecha dan ese tipo de problemas, pero para solucionarlo necesitas colocarnos el formato de la fecha almacenado.

También sería beneficioso que investigaras que Collation tiene cada base de datos/tabla, que son los datos de mapa de caracteres a usar.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 29/09/2005, 07:47
Avatar de lop7  
Fecha de Ingreso: junio-2005
Ubicación: portuguesa (Venezuela)
Mensajes: 187
Antigüedad: 18 años, 11 meses
Puntos: 1
hola...
casulamente a mi me da ese problema tambien pero no comprendo por que sucede tengo una tabla y entre los campos tengo dos campos de tipo smalldatetime el formato que le doy para hacer el insert es '2005/09/22' y me sale ese error
The conversion of a char data type to a smalldatetime data type resulted in an out-of-range smalldatetime value.

esto me da error cuando trato de hacer el insert desde VB que es donde desarrollo la aplicacion pero ejecuto mi insert desde el query analizer y me sale bien pero ha veces me da error cuando intento hacer el insert desde el mismo SQL server

espero puedan ayudarme...

saludos...
nos vemos...
__________________
A quien dices un secreto le entregas tu libertad :si:
  #4 (permalink)  
Antiguo 29/09/2005, 15:31
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Entonces verifica el asunto de los Collation.

También asegurate de que tu aplicacion VB no esté dando ningún formato ni intentando aplicar un autoformato no solicitado.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #5 (permalink)  
Antiguo 24/07/2008, 10:10
 
Fecha de Ingreso: agosto-2006
Mensajes: 34
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: "The conversion..data type to a datetime ..."

declare @FechaVarchar varchar(10), @Fecha datetime
set @FechaVarchar =(select convert(varchar,getdate(),103))

set @Fecha = (select convert(datetime,getdate(),103))


Insert into tabla (fecha) values (@fecha)

asi no importa si esta en ingles o en español (dd/mm/yyyy o mm/dd/yyyy)
  #6 (permalink)  
Antiguo 24/07/2008, 10:55
 
Fecha de Ingreso: agosto-2006
Mensajes: 34
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: "The conversion..data type to a datetime ..."

declare @FechaVarchar varchar(10), @Fecha datetime
set @FechaVarchar =(select convert(varchar,getdate(),103))

set @Fecha = (select convert(datetime,getdate(),103))


Insert into tabla (fecha) values (@fecha)

asi no importa si esta en ingles o en español (dd/mm/yyyy o mm/dd/yyyy)
  #7 (permalink)  
Antiguo 24/07/2008, 16:31
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: "The conversion..data type to a datetime ..."

Bueno, la regla en TODOS lo motores de bases de datos, es que las fechas se manejen en formato ansi: YYYYMMDD HH:MM:SS
  #8 (permalink)  
Antiguo 26/07/2008, 00:50
 
Fecha de Ingreso: julio-2008
Mensajes: 7
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: "The conversion..data type to a datetime ..."

Asegurate de que la tabla de destino no tenga tipo de datos 'smalldatetime' o 'un 'char' o 'nchar', y usa la funcion CONVERT como lo indica Arkhel
  #9 (permalink)  
Antiguo 07/08/2009, 08:06
Avatar de rgbarbieri  
Fecha de Ingreso: agosto-2009
Mensajes: 13
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: "The conversion..data type to a datetime ..."

podes convertirlo de la siguiente manera y vas a recibir un recordset con el formato de fecha DD/MM/YYYY

select convert(smalldatetime,convert(varchar(10),ultimafe cha,103),103) from tabla
where campodatetime between '1900-01-01' and '2079-06-06'


Es importante restringir el rango de fechas que se encuentra en el where porque, son los rangos que maneja el tipo SMALLDATETIME, por ejemplo si en la base de datos hay una fecha cargada y esta supera al 2079 y no tuvieramos aplicado el rango de fechas que especifiqué en el where, entonces no va a funcionar y arrojaría el siguiente error:

Server: Msg 296, Level 16, State 3, Line 1
The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.


Otra cosa es que en el ejemplo devuelve la fecha en formato DD/MM/YYYY porque utilicé 103, en el siguiente link se muestra la tabla completa.

msdn.microsoft.com/es-es/library/ms182418.aspx

Espero que les sirva
Ruben

Última edición por rgbarbieri; 07/08/2009 a las 09:00
  #10 (permalink)  
Antiguo 07/08/2009, 11:30
Avatar de rgbarbieri  
Fecha de Ingreso: agosto-2009
Mensajes: 13
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: "The conversion..data type to a datetime ..."

Si la tabla de origen es de tipo DATETIME y la tabla destino es de tipo SMALLDATETIME, con el siguiente update deberias poder realizar el cambio de tipo de datos

Caso del insert:

INSERT INTO "tabla_destino" (id,fecha) SELECT id,convert(smalldatetime,convert(varchar(10),campo fecha_tablaOrigen,103),103)
FROM tabla_origen
WHERE campofecha_tablaOrigen between '1900-01-01' and '2079-06-06'


Caso del Update:

update tabla_destino
set fecha=(select convert(smalldatetime,convert(varchar(10),campofec ha_tablaOrigen,103),103) from tablaOrigen b
where tabla_destino.idusuario=b.idusuario
and campofecha_tablaOrigen between '1900-01-01' and '2079-06-06')


Espero sea de ayuda, cualquier cosa me avisan
Saludos, Ruben

Última edición por rgbarbieri; 07/08/2009 a las 11:56
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:15.