2009-04-02 15 views

Respuesta

8

Esto podría funcionar.

SET @WhereClause1 = 'where a.Date > ''' + convert(varchar, @InvoiceDate) + '''' 

aunque se producirá un error si el valor es nulo.

+0

esto no funciona porque hay que adjunta la fecha (dentro de la cadena) entre comillas – eKek0

+0

Ok, gracias, voy a solucionarlo con el –

+0

'' corrección, esto hizo lo que necesitaba. gracias a todos – Jeff

1

... y es probable que deba incluir las cadenas de fecha entre comillas.

Probablemente sería mejor construir la cadena de fecha en la rutina de llamada porque debería verificar valores nulos y tal vez otras validaciones.

6

Esto funcionará:

SET @WhereClause1 = 'where a.Date > ''' + cast(@InvoiceDate as varchar(100)) + '''' 
+0

desearía poder marcar dos respuestas aprobadas porque esta también funciona. gracias – Jeff

+0

+1 por hacerlo 100% correcto –

+0

Cuando tengo ese problema, selecciono uno y le doy puntos (flecha arriba) a los demás (si son más de 1). Eso no quiere decir que tengas que hacer lo mismo :) – eKek0

1
EXEC sp_executesql N'SELECT * FROM Orders WHERE a.Date > @date', 
        N'@date datetime', 
        @date = @InvoiceDate 
Cuestiones relacionadas