evaluar la fecha de un campo datetime

27/07/2004 - 12:58 por Eduardo Figueres | Informe spam
Cómo puedo filtrar las filas, mediante un campo datetime, pero sin
considerar la hora.

Si hago SELECT Valor FROM miTabla WHERE Fecha = getdate() no me devuelve
nada..

lo he "solucionado" con un convert:

...WHERE convert(varchar,Fecha,103) = convert(varchar,getdate(),103)

pero esto resulta costosísimo cuando lo ejecuto en servidor y si lo hago
intensivamente entonces tumbo el servidor.

Alguna sugerencia?

Gracias y un cordial saludo,
 

Leer las respuestas

#1 Lázaro
27/07/2004 - 13:26 | Informe spam
Es que si pones una función en los where estás impiendo que el optimizador
lo elija como índice...

Que tienes almacenado en Fecha, tienes horas, minutos y segundo o sólo
fecha, dependiendo de eso puedes poner sólo el convert en el getdate(), lo
que pasa es que al comparar datetime contra varchar tampoco te usará los
índices

Lo mejor es que declares dos variables datetime, una con sólo la fecha y
como horas minutos segundos, 00:00:00, y la otra con la fecha y 23:59:59, y
en el where haz un between entre ambas variables.

Salu2



"Eduardo Figueres" wrote in message
news:
Cómo puedo filtrar las filas, mediante un campo datetime, pero sin
considerar la hora.

Si hago SELECT Valor FROM miTabla WHERE Fecha = getdate() no me devuelve
nada..

lo he "solucionado" con un convert:

...WHERE convert(varchar,Fecha,103) = convert(varchar,getdate(),103)

pero esto resulta costosísimo cuando lo ejecuto en servidor y si lo hago
intensivamente entonces tumbo el servidor.

Alguna sugerencia?

Gracias y un cordial saludo,


Preguntas similares