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.