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

#11 Antonio Ortiz
11/05/2006 - 23:22 | Informe spam
Gracias por tu aportación salvador


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



"Salvador Ramos" escribió en el
mensaje news:
Hola,

Igual el problema lo tienes en si llevas almacenada una hora distinta de
la 0:00 puedes tener problemas si quieres las filas entre dos fechas, por
ejemplo del 1 a l 15 de enero
Con Fecha Between '20060101' and '20060115' estarías perdiendo las filas
del 15 de enero con hora posterior a las 0:00, por eso a veces habrás
visto soluciones propuestas como
Fecha >= '20060101' and Fecha < '20060116', y cosas similares. Eso a veces
puede llevar al ese equívoco.

Con la solución que te da Miguel al incluir la hora en el between que te
propone, no tendría ese problema.

Pd. Yo apuesto otras 10 a que el rendimiento es el mismo :-)

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


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

Gracias Miguel por tu aportacion, con anterioridad lei que se recomendaba
el uso de > y < contra Between en este foro. Siempre lo puse en duda.


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


"Miguel Egea" escribió en el mensaje
news:
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
#12 Lord Voldemort
15/05/2006 - 20:12 | Informe spam
gracias a todos...por su amabilidad .

"Lord Voldemort" <lordvoldemort8@@@gmail.com> wrote in message
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

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