Tampoco me funciona el filtro por fechas

16/12/2004 - 18:28 por Carlos Alfonso García | Informe spam
Hola a Todos: Estuve viendo los consejos descritos más
abajo sobre hacer SELECT * FROM Tabla Where Fecha
<= '20041216' por ejemplo, pero en mi caso no me funciona.
Resulta que yo tengo que hacer la misma consulta en varios
servers, en algunos me funcionó '2004/12/16', en otros me
funcionó '16/12/2004', pero hay uno en lo que no me
funciona de ninguna forma.

La idea es no cambiar ninguna configuración en el server,
sino poner algo en la consulta para poder hacerlo
funcionar independiente del server:

La consulta es más o menos así:
Select @SQL = N'SELECT
Campo1
FROM
' + @server + '-- Dinámico: Server.DB.dbo.Tabla
WHERE
Fecha >= ' + CONVERT(@fecha1,???) -- Qué dejo en ???
AND Fecha <= ' + CONVERT(@fecha1,???) -- Qué dejo en ???
SP_EXECUTESQL @SQL

Gracias por su ayuda

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP]
16/12/2004 - 19:37 | Informe spam
"Carlos Alfonso García" wrote in
message news::
Hola a Todos: Estuve viendo los consejos descritos más
abajo sobre hacer SELECT * FROM Tabla Where Fecha
<= '20041216' por ejemplo, pero en mi caso no me funciona.
Resulta que yo tengo que hacer la misma consulta en varios
servers, en algunos me funcionó '2004/12/16', en otros me
funcionó '16/12/2004', pero hay uno en lo que no me
funciona de ninguna forma.



Usa siempre el formato 'aaaammdd'.




La idea es no cambiar ninguna configuración en el server,
sino poner algo en la consulta para poder hacerlo
funcionar independiente del server:

La consulta es más o menos así:
Select @SQL = N'SELECT
Campo1
FROM
' + @server + '-- Dinámico: Server.DB.dbo.Tabla
WHERE
Fecha >= ' + CONVERT(@fecha1,???) -- Qué dejo en ???
AND Fecha <= ' + CONVERT(@fecha1,???) -- Qué dejo en ???
SP_EXECUTESQL @SQL

Gracias por su ayuda




Gustavo Larriera, MVP SQL
http://sqljunkies.com/weblog/gux

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho / This message is provided "AS IS" with no
warranties expressed or implied, and confers no rights.
Respuesta Responder a este mensaje
#2 Carlos Alfonso García
16/12/2004 - 21:06 | Informe spam
Muchas gracias por la respuesta, pero con aaaammdd no me
funcionó. Gracias por sus comentarios.

"Carlos Alfonso García"


wrote in
message news::
Hola a Todos: Estuve viendo los consejos descritos más
abajo sobre hacer SELECT * FROM Tabla Where Fecha
<= '20041216' por ejemplo, pero en mi caso no me




funciona.
Resulta que yo tengo que hacer la misma consulta en




varios
servers, en algunos me funcionó '2004/12/16', en otros




me
funcionó '16/12/2004', pero hay uno en lo que no me
funciona de ninguna forma.



Usa siempre el formato 'aaaammdd'.




La idea es no cambiar ninguna configuración en el




server,
sino poner algo en la consulta para poder hacerlo
funcionar independiente del server:

La consulta es más o menos así:
Select @SQL = N'SELECT
Campo1
FROM
' + @server + '-- Dinámico: Server.DB.dbo.Tabla
WHERE
Fecha >= ' + CONVERT(@fecha1,???) -- Qué dejo en ???
AND Fecha <= ' + CONVERT(@fecha1,???) -- Qué dejo




en ???
SP_EXECUTESQL @SQL

Gracias por su ayuda




Gustavo Larriera, MVP SQL
http://sqljunkies.com/weblog/gux

Este mensaje se proporciona "como está" sin garantías de


ninguna clase,
y no otorga ningún derecho / This message is provided "AS


IS" with no
warranties expressed or implied, and confers no rights.




.

Respuesta Responder a este mensaje
#3 ulises
16/12/2004 - 21:18 | Informe spam
Lo que te indica Gux es que siempre uses ese formato pero
la forma como lo quieres usar en CONVERT es inválida, si
revisas el BOL verás que la forma correcta sería

CONVERT ( char(08),@fecha1, 112 )

Saludos,
Ulises

Muchas gracias por la respuesta, pero con aaaammdd no me
funcionó. Gracias por sus comentarios.

"Carlos Alfonso García"


wrote in
message news::
Hola a Todos: Estuve viendo los consejos descritos más
abajo sobre hacer SELECT * FROM Tabla Where Fecha
<= '20041216' por ejemplo, pero en mi caso no me




funciona.
Resulta que yo tengo que hacer la misma consulta en




varios
servers, en algunos me funcionó '2004/12/16', en otros




me
funcionó '16/12/2004', pero hay uno en lo que no me
funciona de ninguna forma.



Usa siempre el formato 'aaaammdd'.




La idea es no cambiar ninguna configuración en el




server,
sino poner algo en la consulta para poder hacerlo
funcionar independiente del server:

La consulta es más o menos así:
Select @SQL = N'SELECT
Campo1
FROM
' + @server + '-- Dinámico: Server.DB.dbo.Tabla
WHERE
Fecha >= ' + CONVERT(@fecha1,???) -- Qué dejo en ???
AND Fecha <= ' + CONVERT(@fecha1,???) -- Qué dejo




en ???
SP_EXECUTESQL @SQL

Gracias por su ayuda




Gustavo Larriera, MVP SQL
http://sqljunkies.com/weblog/gux

Este mensaje se proporciona "como está" sin garantías de


ninguna clase,
y no otorga ningún derecho / This message is provided "AS


IS" with no
warranties expressed or implied, and confers no rights.




.



.

Respuesta Responder a este mensaje
#4 Carlos Alfonso García
16/12/2004 - 21:50 | Informe spam
Tienes Razón, el convert lo escribí mal en el ejemplo,
pero no quiere funcionarme. Ya lo resolví guardando el SP
en otro servidor. Muchas gracias.

Lo que te indica Gux es que siempre uses ese formato pero
la forma como lo quieres usar en CONVERT es inválida, si
revisas el BOL verás que la forma correcta sería

CONVERT ( char(08),@fecha1, 112 )

Saludos,
Ulises

Muchas gracias por la respuesta, pero con aaaammdd no me
funcionó. Gracias por sus comentarios.

"Carlos Alfonso García"


wrote in
message news::
Hola a Todos: Estuve viendo los consejos descritos más
abajo sobre hacer SELECT * FROM Tabla Where Fecha
<= '20041216' por ejemplo, pero en mi caso no me




funciona.
Resulta que yo tengo que hacer la misma consulta en




varios
servers, en algunos me funcionó '2004/12/16', en








otros
me
funcionó '16/12/2004', pero hay uno en lo que no me
funciona de ninguna forma.



Usa siempre el formato 'aaaammdd'.




La idea es no cambiar ninguna configuración en el




server,
sino poner algo en la consulta para poder hacerlo
funcionar independiente del server:

La consulta es más o menos así:
Select @SQL = N'SELECT
Campo1
FROM
' + @server + '-- Dinámico: Server.DB.dbo.Tabla
WHERE
Fecha >= ' + CONVERT(@fecha1,???) -- Qué dejo en ???
AND Fecha <= ' + CONVERT(@fecha1,???) -- Qué dejo




en ???
SP_EXECUTESQL @SQL

Gracias por su ayuda




Gustavo Larriera, MVP SQL
http://sqljunkies.com/weblog/gux

Este mensaje se proporciona "como está" sin garantías






de
ninguna clase,
y no otorga ningún derecho / This message is






provided "AS
IS" with no
warranties expressed or implied, and confers no rights.




.



.



.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida