Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/03/2013, 15:49
Jhang
 
Fecha de Ingreso: octubre-2009
Ubicación: Guapiles
Mensajes: 11
Antigüedad: 15 años, 1 mes
Puntos: 0
EXECUTE SP_EXECUTESQL error al convertir una cadena a smalldatetime

Hola compañeros,

Quisiera aprovechar sus conocimientos y que me den una ayuda por favor con este error que se me presenta:

El asunto es que tengo una tabla donde quiero enviar unos datos ejecutando un query dinamico con EXECUTE SP_EXECUTESQL, pero estoy teniendo problemas con los valores smalldatetime.

digamos por ejemplo que la tabla es la tabla_prueba que tiene como campos:
  • id (int)
  • descripcion (varchar(100))
  • fecha (smalldatetime)

Para llenarla utilizo lo siguiente:

Declaro unas variables:

Código:
DECLARE @FECHA			NVARCHAR(MAX);
DECLARE @CADENA  		NVARCHAR(MAX);
DECLARE @QUERY			NVARCHAR(MAX);
DECLARE @QUERY_ENC		NVARCHAR(MAX);
DECLARE @QUERY_FINAL		NVARCHAR(MAX);
DECLARE @PARAMETROS		NVARCHAR(MAX);
Establezco unos valores:

Código:
SET @FECHA		= NULL
SET @CADENA     	= 'HOLA MUNDO'
Les comento que también he probado con GETDATE() y obtengo el mismo resultado.

Luego armo los querys:

Código:
SET @QUERY_ENC = 'INSERT INTO CC_PRUEBAS SELECT '

SET @QUERY = @CADENA + ', 1, ' + @FECHA

SET @QUERY_FIN = @QUERY_ENC + @QUERY

En esta parte también he intentado con 

SET @QUERY = @CADENA + ', 1, @FECHA'

SET @QUERY = @CADENA + ', 1, @FECHA'

SET @QUERY = @CADENA + ', 1, ' + cast(@FECHA as smalldatetime)
Y obtengo el mismo resultado.

Por ultimo establezco los parametros:

Código:
SET @PARAMETROS = N'@CADENA VARCHAR(MAX), @FECHA SMALLDATETIME';
Y ejecuto la instrucción:

Código:
EXECUTE SP_EXECUTESQL @QUERY_FIN,@PARAMETROS,@CADENA,@FECHA;
Y el resultado es el mismo:

"Conversion failed when converting character string to smalldatetime data type. SQL.sql 16 1 "

No he podido encontrar la manera de ejecución o armado correcto de este EXECUTE, por eso les pido ayuda con este problemita.

Gracias por su ayuda.