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:
Establezco unos valores: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);
Código:
Les comento que también he probado con GETDATE() y obtengo el mismo resultado.SET @FECHA = NULL SET @CADENA = 'HOLA MUNDO'
Luego armo los querys:
Código:
Y obtengo el mismo resultado.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)
Por ultimo establezco los parametros:
Código:
Y ejecuto la instrucción:SET @PARAMETROS = N'@CADENA VARCHAR(MAX), @FECHA SMALLDATETIME';
Código:
Y el resultado es el mismo:EXECUTE SP_EXECUTESQL @QUERY_FIN,@PARAMETROS,@CADENA,@FECHA;
"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.