sql dinamico y where con fechas

15/03/2005 - 15:13 por MAbanto | Informe spam
si ejecuto esto.(@fechaini='01/03/20005')
exec ( @sql1 + ' ' +@sql2 + @fechaini )

me sale:
Servidor: mensaje 170, nivel 15, estado 1, línea 12
Línea 12: sintaxis incorrecta cerca de '1'.

o si pongo esto que me recomendaron:

exec ( @sql1 + ' ' +@sql2 + ''' + @fechaini + ''')

Servidor: mensaje 241, nivel 16, estado 1, línea 1
Error de sintaxis al convertir una cadena de caracteres a datetime.

QUE PUEDO HACER??

me sale.
 

Leer las respuestas

#1 Alejandro Mesa
15/03/2005 - 15:25 | Informe spam
Nos puedes decir el valor de las variables @sql1 y @sql2?

Cuando usas fechas en SQL Server, lo optimo seria usar un formato reconocido
independiente del lenguaje y seteo de "SET DATEFORMAT" en uso. Para eso
puedes usar los estilos 112 y 126 the la funcion CONVERT.

112 - aaaammdd
126 - aaaa-mm-ddThh:mm:ss.mmm

Ejemplo:

use northwind
go

declare @sql nvarchar(4000)

set @sql = N'select top 10 * from orders where orderdate >= @fd and
orderdate < @td'

execute sp_executesql @sql, N'@fd datetime, @td datetime', '19970101',
'19980101'
go


AMB


"MAbanto" wrote:

si ejecuto esto.(@fechaini='01/03/20005')
exec ( @sql1 + ' ' +@sql2 + @fechaini )

me sale:
Servidor: mensaje 170, nivel 15, estado 1, línea 12
Línea 12: sintaxis incorrecta cerca de '1'.

o si pongo esto que me recomendaron:

exec ( @sql1 + ' ' +@sql2 + ''' + @fechaini + ''')

Servidor: mensaje 241, nivel 16, estado 1, línea 1
Error de sintaxis al convertir una cadena de caracteres a datetime.

QUE PUEDO HACER??

me sale.


Preguntas similares