Disculpen la burrada pero..

06/05/2006 - 01:40 por Lord Voldemort | Informe spam
Como carajos traigo los datos de todo un año..

Select From WHERE IN Year(2006)
o esto no se puede asi y tendre que hacerlo con el WHERE Fecha>/01/2006
AND Fecha<1/12/2006 ????

saludos

Jairo

Preguntas similare

Leer las respuestas

#1 Maxi [MVP]
06/05/2006 - 02:49 | Informe spam
Hola, primero te diria que bajes aca un poco el tono, no es necesario pedir
las cosas asi.

Segundo, no te recomiendo ninguna de las 2 maneras, la primera no usara los
indices de forma eficiente si esa que los tiene ya que aplicas una funcion a
un campo, la segunda no respeta el formato ANSI

Tonces

Select campos from tabla
where fecha >='20060101' and fecha < '20070101'

bye


Salu2
-
[Microsoft MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org

MSN:

"Lord Voldemort" <lordvoldemort8@@@gmail.com> escribió en el mensaje
news:
Como carajos traigo los datos de todo un año..

Select From WHERE IN Year(2006)
o esto no se puede asi y tendre que hacerlo con el WHERE Fecha>/01/2006
AND Fecha<1/12/2006 ????

saludos

Jairo

Respuesta Responder a este mensaje
#2 Antonio Ortiz
07/05/2006 - 03:27 | Informe spam
Aprovechando el hilo:

Hace tiempo se discutia si es mejor o definir el rango de esta manera o el
between, en lo particular yo acostumbro utilizar Between siempre que me es
posible por legibilidad y mi rendimiento no decae o al menos no le he
apreciado.

Que Opinas Maxi?


P.D. El tono es cuestion de cultura/regiones, lo que para ti pudiera parecer
una bromita o vocabulario normal, tal vez en mi region resulte agresivo, en
mi opinion deberias recordad eso siempre. Por aquí he leido 'palabrotas' que
aca (Mexico) son una vulgaridad o suenan groseras pero supongo que son
regionalismos asi que no les hago caso o me dan risa.


Saludos,

Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"Maxi [MVP]" escribió en el mensaje
news:
Hola, primero te diria que bajes aca un poco el tono, no es necesario
pedir las cosas asi.

Segundo, no te recomiendo ninguna de las 2 maneras, la primera no usara
los indices de forma eficiente si esa que los tiene ya que aplicas una
funcion a un campo, la segunda no respeta el formato ANSI

Tonces

Select campos from tabla
where fecha >='20060101' and fecha < '20070101'

bye


Salu2
-
[Microsoft MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org

MSN:

"Lord Voldemort" <lordvoldemort8@@@gmail.com> escribió en el mensaje
news:
Como carajos traigo los datos de todo un año..

Select From WHERE IN Year(2006)
o esto no se puede asi y tendre que hacerlo con el WHERE
Fecha>/01/2006 AND Fecha<1/12/2006 ????

saludos

Jairo





Respuesta Responder a este mensaje
#3 Miguel Egea
08/05/2006 - 12:29 | Informe spam
Así es, en España no suena eso nada fuerte, más bien al contrario, suena
hasta de comentarion entre compañeros :),

No es bueno usar funciones de transformación sobre campos por que SQL es
posible que no apreveche los índices

Si escribimos esta función Select * from Facturas Where
Year(FechaFactura) 06, SQL Tendrá que leer todas las facturas calcular el
año y entonces comparar para ver si devuelve o no las filas. El optimizador
de consultas remueve algunos casos evidentes del tipo Where
FechaFactura+5='talfecha', pero por si acaso debemos intentar hacerle la
vida más fácil. Así pues usando beetween además de ser más genérico, con
una política adecuada de índices, también será más rápido.

Select * from Facturas where FechaFactura between '20060101' and '20061231
23:59:59.999'

Creo que esta sería la forma más optima en mi opiníon de hacerlo.


Miguel Egea Gómez

SQLServer MVP

Director de Servicios Corporativos

Solid Quality Learning Iberoamericana



"Solid Quality Learning es el proveedor global en el que puede confiar para
obtener soluciones y educación avanzada para la plataforma completa de
sistemas de bases de datos de Microsoft."

www.SolidQualityLearning.com



"Antonio Ortiz" escribió en el mensaje
news:

Aprovechando el hilo:

Hace tiempo se discutia si es mejor o definir el rango de esta manera o el
between, en lo particular yo acostumbro utilizar Between siempre que me es
posible por legibilidad y mi rendimiento no decae o al menos no le he
apreciado.

Que Opinas Maxi?


P.D. El tono es cuestion de cultura/regiones, lo que para ti pudiera
parecer una bromita o vocabulario normal, tal vez en mi region resulte
agresivo, en mi opinion deberias recordad eso siempre. Por aquí he leido
'palabrotas' que aca (Mexico) son una vulgaridad o suenan groseras pero
supongo que son regionalismos asi que no les hago caso o me dan risa.


Saludos,

Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"Maxi [MVP]" escribió en el mensaje
news:
Hola, primero te diria que bajes aca un poco el tono, no es necesario
pedir las cosas asi.

Segundo, no te recomiendo ninguna de las 2 maneras, la primera no usara
los indices de forma eficiente si esa que los tiene ya que aplicas una
funcion a un campo, la segunda no respeta el formato ANSI

Tonces

Select campos from tabla
where fecha >='20060101' and fecha < '20070101'

bye


Salu2
-
[Microsoft MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org

MSN:

"Lord Voldemort" <lordvoldemort8@@@gmail.com> escribió en el mensaje
news:
Como carajos traigo los datos de todo un año..

Select From WHERE IN Year(2006)
o esto no se puede asi y tendre que hacerlo con el WHERE
Fecha>/01/2006 AND Fecha<1/12/2006 ????

saludos

Jairo









Respuesta Responder a este mensaje
#4 Antonio Ortiz
08/05/2006 - 22:05 | Informe spam
Gracias Miguel, me referia al estilo:

Fecha>=RangoMinimo and Fecha<=Maximo

contra:

Fecha Between Inicio and Fin

saludos,


Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"Miguel Egea" escribió en el mensaje
news:
Así es, en España no suena eso nada fuerte, más bien al contrario, suena
hasta de comentarion entre compañeros :),

No es bueno usar funciones de transformación sobre campos por que SQL es
posible que no apreveche los índices

Si escribimos esta función Select * from Facturas Where
Year(FechaFactura) 06, SQL Tendrá que leer todas las facturas calcular
el año y entonces comparar para ver si devuelve o no las filas. El
optimizador de consultas remueve algunos casos evidentes del tipo Where
FechaFactura+5='talfecha', pero por si acaso debemos intentar hacerle la
vida más fácil. Así pues usando beetween además de ser más genérico, con
una política adecuada de índices, también será más rápido.

Select * from Facturas where FechaFactura between '20060101' and '20061231
23:59:59.999'

Creo que esta sería la forma más optima en mi opiníon de hacerlo.


Miguel Egea Gómez

SQLServer MVP

Director de Servicios Corporativos

Solid Quality Learning Iberoamericana



"Solid Quality Learning es el proveedor global en el que puede confiar
para obtener soluciones y educación avanzada para la plataforma completa
de sistemas de bases de datos de Microsoft."

www.SolidQualityLearning.com



"Antonio Ortiz" escribió en el mensaje
news:

Aprovechando el hilo:

Hace tiempo se discutia si es mejor o definir el rango de esta manera o
el between, en lo particular yo acostumbro utilizar Between siempre que
me es posible por legibilidad y mi rendimiento no decae o al menos no le
he apreciado.

Que Opinas Maxi?


P.D. El tono es cuestion de cultura/regiones, lo que para ti pudiera
parecer una bromita o vocabulario normal, tal vez en mi region resulte
agresivo, en mi opinion deberias recordad eso siempre. Por aquí he leido
'palabrotas' que aca (Mexico) son una vulgaridad o suenan groseras pero
supongo que son regionalismos asi que no les hago caso o me dan risa.


Saludos,

Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"Maxi [MVP]" escribió en el mensaje
news:
Hola, primero te diria que bajes aca un poco el tono, no es necesario
pedir las cosas asi.

Segundo, no te recomiendo ninguna de las 2 maneras, la primera no usara
los indices de forma eficiente si esa que los tiene ya que aplicas una
funcion a un campo, la segunda no respeta el formato ANSI

Tonces

Select campos from tabla
where fecha >='20060101' and fecha < '20070101'

bye


Salu2
-
[Microsoft MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org

MSN:

"Lord Voldemort" <lordvoldemort8@@@gmail.com> escribió en el mensaje
news:
Como carajos traigo los datos de todo un año..

Select From WHERE IN Year(2006)
o esto no se puede asi y tendre que hacerlo con el WHERE
Fecha>/01/2006 AND Fecha<1/12/2006 ????

saludos

Jairo













Respuesta Responder a este mensaje
#5 Miguel Egea
09/05/2006 - 10:03 | Informe spam
Dan el mismo plan de ejecución, en el primero de los procesos de
interpretación de consultas normaliza ambas expresiones a lo mismo si no me
equivoco.

i
Miguel Egea Gómez

SQLServer MVP

Director de Servicios Corporativos

Solid Quality Learning Iberoamericana



"Solid Quality Learning es el proveedor global en el que puede confiar para
obtener soluciones y educación avanzada para la plataforma completa de
sistemas de bases de datos de Microsoft."

www.SolidQualityLearning.com

"Antonio Ortiz" escribió en el mensaje
news:%

Gracias Miguel, me referia al estilo:

Fecha>=RangoMinimo and Fecha<=Maximo

contra:

Fecha Between Inicio and Fin

saludos,


Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"Miguel Egea" escribió en el mensaje
news:
Así es, en España no suena eso nada fuerte, más bien al contrario, suena
hasta de comentarion entre compañeros :),

No es bueno usar funciones de transformación sobre campos por que SQL es
posible que no apreveche los índices

Si escribimos esta función Select * from Facturas Where
Year(FechaFactura) 06, SQL Tendrá que leer todas las facturas calcular
el año y entonces comparar para ver si devuelve o no las filas. El
optimizador de consultas remueve algunos casos evidentes del tipo Where
FechaFactura+5='talfecha', pero por si acaso debemos intentar hacerle la
vida más fácil. Así pues usando beetween además de ser más genérico,
con una política adecuada de índices, también será más rápido.

Select * from Facturas where FechaFactura between '20060101' and
'20061231 23:59:59.999'

Creo que esta sería la forma más optima en mi opiníon de hacerlo.


Miguel Egea Gómez

SQLServer MVP

Director de Servicios Corporativos

Solid Quality Learning Iberoamericana



"Solid Quality Learning es el proveedor global en el que puede confiar
para obtener soluciones y educación avanzada para la plataforma completa
de sistemas de bases de datos de Microsoft."

www.SolidQualityLearning.com



"Antonio Ortiz" escribió en el mensaje
news:

Aprovechando el hilo:

Hace tiempo se discutia si es mejor o definir el rango de esta manera o
el between, en lo particular yo acostumbro utilizar Between siempre que
me es posible por legibilidad y mi rendimiento no decae o al menos no le
he apreciado.

Que Opinas Maxi?


P.D. El tono es cuestion de cultura/regiones, lo que para ti pudiera
parecer una bromita o vocabulario normal, tal vez en mi region resulte
agresivo, en mi opinion deberias recordad eso siempre. Por aquí he leido
'palabrotas' que aca (Mexico) son una vulgaridad o suenan groseras pero
supongo que son regionalismos asi que no les hago caso o me dan risa.


Saludos,

Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"Maxi [MVP]" escribió en el mensaje
news:
Hola, primero te diria que bajes aca un poco el tono, no es necesario
pedir las cosas asi.

Segundo, no te recomiendo ninguna de las 2 maneras, la primera no usara
los indices de forma eficiente si esa que los tiene ya que aplicas una
funcion a un campo, la segunda no respeta el formato ANSI

Tonces

Select campos from tabla
where fecha >='20060101' and fecha < '20070101'

bye


Salu2
-
[Microsoft MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org

MSN:

"Lord Voldemort" <lordvoldemort8@@@gmail.com> escribió en el mensaje
news:
Como carajos traigo los datos de todo un año..

Select From WHERE IN Year(2006)
o esto no se puede asi y tendre que hacerlo con el WHERE
Fecha>/01/2006 AND Fecha<1/12/2006 ????

saludos

Jairo

















Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida