Problema con fechas

02/02/2004 - 18:04 por Alberto | Informe spam
Tengo que seleccionar registros que están entre dos fechas con un between:

FechaCreacion BETWEEN @FechaDesde and @FechaHasta

El problema me surge porque son frecuentes las consultas donde la fecha
desde y la fecha hasta coinciden pero no muestra ningún registro debido que
dichos campos contienen información de la hora.
¿Se os ocurre algún método para eliminarla?
Gracias

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
02/02/2004 - 18:36 | Informe spam
lo mejor y mas optimo seria hacer algo asi como:

Select campos FROM tabla where fecha BETWEEN '20040101' and '20040101
23:59:00'

claro no se como estas haciendo estas consultas ni de donde pero deberias
poner algun if si la fecha desde y hasta son
iguales poner la hora como te indique.

Tambien podrias usar el comando Convert sobre el campo en este caso fecha,
la macana de esto que no es muy optimo de verdad, ahora si eso no es un
problema puedes de verlo.

Salu2

Maximiliano Damian Accotto


"Alberto" escribió en el mensaje
news:%
Tengo que seleccionar registros que están entre dos fechas con un between:

FechaCreacion BETWEEN @FechaDesde and @FechaHasta

El problema me surge porque son frecuentes las consultas donde la fecha
desde y la fecha hasta coinciden pero no muestra ningún registro debido


que
dichos campos contienen información de la hora.
¿Se os ocurre algún método para eliminarla?
Gracias


Respuesta Responder a este mensaje
#2 Alberto
02/02/2004 - 18:41 | Informe spam
Si diese conseguido modificar la hora de la "fecha hasta" y poner las
23:59:59, el problema estaría solucionado.
Gracias.

"Alberto" escribió en el mensaje
news:%
Tengo que seleccionar registros que están entre dos fechas con un between:

FechaCreacion BETWEEN @FechaDesde and @FechaHasta

El problema me surge porque son frecuentes las consultas donde la fecha
desde y la fecha hasta coinciden pero no muestra ningún registro debido


que
dichos campos contienen información de la hora.
¿Se os ocurre algún método para eliminarla?
Gracias


Respuesta Responder a este mensaje
#3 Jose Mariano Alvarez \(MUG\)
02/02/2004 - 18:47 | Informe spam
No uses between
Usa operadore binarios.

Si la fecha hasta esta incluida y debe tomar todas las "horas" es mas facil
hacer

FechaCreacion >= @FechaDesde
and FechaCreacion < dateadd(dd,@FechaHasta,1)


Jose Mariano Alvarez
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar



"Alberto" wrote in message
news:%
Tengo que seleccionar registros que están entre dos fechas con un between:

FechaCreacion BETWEEN @FechaDesde and @FechaHasta

El problema me surge porque son frecuentes las consultas donde la fecha
desde y la fecha hasta coinciden pero no muestra ningún registro debido


que
dichos campos contienen información de la hora.
¿Se os ocurre algún método para eliminarla?
Gracias


Respuesta Responder a este mensaje
#4 Alberto
02/02/2004 - 18:52 | Informe spam
Es un procedimiento almacenado que recibe las dos fechas (inicial y final)
como parámetros.
La consulta involucra a dos tablas en un join. Tal y como indico en otro
mensaje, el problema quedaría solucionado si consiguiese modificar la fecha
hasta para poner como hora las 23:59:59. Se me ocurrió algo así como

Select campos
from tabla
where cast(cast(FechaCreacion as int) as datetime) between fechaInicio and
fechaFin

Como podeis ver, con la conversión a int le corto la información de la hora
y al volver a convertirlo a fecha ya tengo las 0:0:0 pero supongo que sería
muy lento. Es más óptimo dejar sin modificación los campos de la base de
datos y modificar (sólo una vez) el parámetro recibido.

Gracias.

"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]ar> escribió en el
mensaje news:
lo mejor y mas optimo seria hacer algo asi como:

Select campos FROM tabla where fecha BETWEEN '20040101' and '20040101
23:59:00'

claro no se como estas haciendo estas consultas ni de donde pero deberias
poner algun if si la fecha desde y hasta son
iguales poner la hora como te indique.

Tambien podrias usar el comando Convert sobre el campo en este caso fecha,
la macana de esto que no es muy optimo de verdad, ahora si eso no es un
problema puedes de verlo.

Salu2

Maximiliano Damian Accotto


"Alberto" escribió en el mensaje
news:%
> Tengo que seleccionar registros que están entre dos fechas con un


between:
>
> FechaCreacion BETWEEN @FechaDesde and @FechaHasta
>
> El problema me surge porque son frecuentes las consultas donde la fecha
> desde y la fecha hasta coinciden pero no muestra ningún registro debido
que
> dichos campos contienen información de la hora.
> ¿Se os ocurre algún método para eliminarla?
> Gracias
>
>


Respuesta Responder a este mensaje
#5 Alberto
02/02/2004 - 18:53 | Informe spam
Gracias. Esto sí que funciona. Era bastante más sencillo que todo en lo que
estaba pensando.

"Jose Mariano Alvarez (MUG)" <jose.alvarez * *Arroba* * mug.org.ar> escribió
en el mensaje news:
No uses between
Usa operadore binarios.

Si la fecha hasta esta incluida y debe tomar todas las "horas" es mas


facil
hacer

FechaCreacion >= @FechaDesde
and FechaCreacion < dateadd(dd,@FechaHasta,1)


Jose Mariano Alvarez
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar



"Alberto" wrote in message
news:%
> Tengo que seleccionar registros que están entre dos fechas con un


between:
>
> FechaCreacion BETWEEN @FechaDesde and @FechaHasta
>
> El problema me surge porque son frecuentes las consultas donde la fecha
> desde y la fecha hasta coinciden pero no muestra ningún registro debido
que
> dichos campos contienen información de la hora.
> ¿Se os ocurre algún método para eliminarla?
> Gracias
>
>


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