Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

error en insert

Estas en el tema de error en insert en el foro de Visual Basic clásico en Foros del Web. Hola... este es mi insert insert into movimientos values(100,7,9749,9749,'2005-09-23') este es el error que me da The conversion of char data type to smalldatetime data ...
  #1 (permalink)  
Antiguo 26/09/2005, 09:16
Avatar de lop7  
Fecha de Ingreso: junio-2005
Ubicación: portuguesa (Venezuela)
Mensajes: 187
Antigüedad: 18 años, 11 meses
Puntos: 1
error en insert

Hola...
este es mi insert
insert into movimientos values(100,7,9749,9749,'2005-09-23')

este es el error que me da
The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.

y en la tabla lo tengo declarado smalldatetime los campos de fecha
uso SQL server

espero puedan ayudarme

saludos
nos vemos...
__________________
A quien dices un secreto le entregas tu libertad :si:
  #2 (permalink)  
Antiguo 26/09/2005, 09:20
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación

Cita:
Iniciado por lop7
Hola...
este es mi insert
insert into movimientos values(100,7,9749,9749,'2005-09-23')

este es el error que me da
The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.

y en la tabla lo tengo declarado smalldatetime los campos de fecha
uso SQL server

espero puedan ayudarme

saludos
nos vemos...
Te está diciendo que la conversión del tipo "char" al tipo "smalldatetime" dió un out of range, o sea una inserción en Index de Matriz no válido, espero te ayude...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 26/09/2005, 09:29
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Cita:
Iniciado por lop7
Hola...
este es mi insert
insert into movimientos values(100,7,9749,9749,'2005-09-23')

este es el error que me da
The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.

y en la tabla lo tengo declarado smalldatetime los campos de fecha
uso SQL server

espero puedan ayudarme

saludos
nos vemos...

insert into movimientos values(100,7,9749,9749,CONVERT(DATETIME,'2005-09-23', 102))


intenta asi.
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #4 (permalink)  
Antiguo 26/09/2005, 09:41
Avatar de lop7  
Fecha de Ingreso: junio-2005
Ubicación: portuguesa (Venezuela)
Mensajes: 187
Antigüedad: 18 años, 11 meses
Puntos: 1
ok el problema es q usamos un template o modelo para hacer algunas rutinas entre esa esta el insert pero con los demas sitemas que tenemos no habia ocurrido nunca lo hace de maravilla pero ahora estoy trabajando en un sistema nuevo y el template me forma el string del insert como lo hace con lo demas pero cuando ejecuta ese estring me sale el error. y prove ese insert por el QUIERY ANALIZER y hace el insert perfecto no entiendo q pasa ...

otra cosa en que momento esta intentado convertir tipo "char" al tipo "smalldatetime" si lo tengo declarado como un smalldatetime. no entiendo

cuando va formando el strin el verifica el tipo d dato
If rec!Type = "smalldatetime" Then
strinsert = strinsert & "'" & Format(formfields(j, 3), "yyyy/mm/dd") & "'" & ","
end if

gracias
__________________
A quien dices un secreto le entregas tu libertad :si:
  #5 (permalink)  
Antiguo 07/08/2009, 08:45
Avatar de rgbarbieri  
Fecha de Ingreso: agosto-2009
Mensajes: 13
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: error en insert

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
  #6 (permalink)  
Antiguo 07/08/2009, 12:03
Avatar de rgbarbieri  
Fecha de Ingreso: agosto-2009
Mensajes: 13
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: error en insert

Agrego info respecto al insert y el update

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
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 16:42.