Foros del Web » Programando para Internet » ASP Clásico »

Consulta entre fechas

Estas en el tema de Consulta entre fechas en el foro de ASP Clásico en Foros del Web. Hola, tengo un problema.. mejor dicho, no se como hacerlo. Estoy intentando visulizar un listado que sea entre 2 fechas. Me explico. El usuario selecciona ...
  #1 (permalink)  
Antiguo 17/10/2012, 10:23
 
Fecha de Ingreso: junio-2004
Mensajes: 47
Antigüedad: 19 años, 11 meses
Puntos: 0
Consulta entre fechas

Hola, tengo un problema.. mejor dicho, no se como hacerlo.

Estoy intentando visulizar un listado que sea entre 2 fechas.

Me explico.
El usuario selecciona de 2 calendarios primero la fecha inicial, y la fecha final.

Entonces le mando las dos variables en un formulario: fecha_inicial y fecha_final , y tengo compararlo con un campo que se llama fechaBaja.

El campo fechaBaja esta en una base de datos de Access y Fecha/Hora.

He estado mirando, pero no logro realizarlo, os agradecería vuestra ayuda.

Gracias por anticipado.
  #2 (permalink)  
Antiguo 17/10/2012, 12:06
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 16 años, 2 meses
Puntos: 31
Respuesta: Consulta entre fechas

Buenas tardes,
Veamos por donde vas.
Los pasos serían algo asi:
1- El codigo html con el formulario y las 2 fechas
2- El asp que recibe los 2 parametros
3- La conexion con la base de datos access
4- La consulta de la tabla
5- El recorrido del recordset que devuelve

¿Tienes algo de esto?
__________________
Tomarse un tiempo para redactar correctamente la pregunta, utilizando los signos de puntuación adecuados, es ganar tiempo y calidad en la respuesta.
  #3 (permalink)  
Antiguo 17/10/2012, 12:22
 
Fecha de Ingreso: junio-2004
Mensajes: 47
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Consulta entre fechas

Me faltaría el punto 4 y 5:

4- La consulta de la tabla
5- El recorrido del recordset que devuelve

Gracias
  #4 (permalink)  
Antiguo 17/10/2012, 12:58
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 16 años, 2 meses
Puntos: 31
Respuesta: Consulta entre fechas

Bien, entonces no falta casi nada!
Te paso una idea de como debería ser la consulta y el recorrido de los campos.
Otra forma es usando between en la consulta, pero aca uso el mayor o igual.
Un problema que puede surgir es entre el formato de la fecha de la variable y el formato del campo en la bd.
Debes asegurarte que el formato que le pasas al campo fechaBaja es el mismo formato del campo
Cuando te surja una duda o problema lo posteas y lo vemos.

Código ASP:
Ver original
  1. <%
  2. 'Esto son los 2 parametros que recibes del formulario.
  3. fecha_inicial = "10/10/2012"
  4. fecha_final = "17/10/2012"
  5.  
  6. 'La consulta. debes tener en cuenta que para hacer consulta con fechas en access debes usar almoadillas.
  7. Consulta = "SELECT * FROM MiTabla WHERE fechaBaja>=#"&fecha_inicial&"# AND fechaBaja <=#"&fecha_final&"#"
  8. 'Suponiendo que ya tienes la conexion. uso la variable miconexion para enviar la consulta y la guardo en mirecordset
  9. Set mirecorset=miconexion.execute(Consulta)
  10.  
  11. 'mientras que no se llegue al final del recorset lo recorro
  12. while Not mirecorset.EOF
  13.         'muestro el valor del campo fechaBaja.
  14.     response.write(mirecorset("fechaBaja"))
  15.         'muevo el puntero para el proximo valor y sigo.
  16.     mirecorset.movenext
  17. Wend
  18. 'cierro las conexiones y borro las variables
  19. miconexion.close
  20. set mirecorset=nothing
  21. set miconexion=nothing
  22. %>

saludos
__________________
Tomarse un tiempo para redactar correctamente la pregunta, utilizando los signos de puntuación adecuados, es ganar tiempo y calidad en la respuesta.
  #5 (permalink)  
Antiguo 17/10/2012, 13:18
 
Fecha de Ingreso: junio-2004
Mensajes: 47
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Consulta entre fechas

Lo primero Gracias por contestar :) , pero me muestra todo el año (que ya es un logro), hasta fecha_final , no hace caso de fecha_inicial
  #6 (permalink)  
Antiguo 17/10/2012, 13:38
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 16 años, 2 meses
Puntos: 31
Respuesta: Consulta entre fechas

Seguramente como te mencione, puedes tener problemas según el formato de fecha en la BD
¿Cual es el formato de fecha en tu tabla? ¿Como se muestran los valores de la fecha?
__________________
Tomarse un tiempo para redactar correctamente la pregunta, utilizando los signos de puntuación adecuados, es ganar tiempo y calidad en la respuesta.
  #7 (permalink)  
Antiguo 17/10/2012, 13:42
 
Fecha de Ingreso: junio-2004
Mensajes: 47
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Consulta entre fechas

Dia, mes y año : 03/01/2012
En la base esta: Fecha/Hora
  #8 (permalink)  
Antiguo 17/10/2012, 13:52
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 16 años, 2 meses
Puntos: 31
Respuesta: Consulta entre fechas

Pero el formato de fecha del campo fechaBajano me queda claro. puede ser:
dd/mm/aaaa hh:mm
mm/dd/aaaa hh:mm
dd-mm-aaaa hh:mm
mm-dd-aaaa hh:mm

En todo caso prueba en la consulta pasando la fecha en formato mm/dd/aaaa
Tambien puedes probar cambiando el where por este otro:
Código ASP:
Ver original
  1. WHERE fechaBaja between #"&fecha_inicial&"# and #"&fecha_final&"#"
__________________
Tomarse un tiempo para redactar correctamente la pregunta, utilizando los signos de puntuación adecuados, es ganar tiempo y calidad en la respuesta.
  #9 (permalink)  
Antiguo 17/10/2012, 14:51
 
Fecha de Ingreso: junio-2004
Mensajes: 47
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Consulta entre fechas

No muestra nada............ :) ,
si le doy a buscar desde el 01/01/2012 hasta 28/09/2012 me muestra todo, pero si pongo una fecha posterior no muestra nada

Última edición por nene16803; 17/10/2012 a las 15:04
  #10 (permalink)  
Antiguo 17/10/2012, 15:28
 
Fecha de Ingreso: junio-2004
Mensajes: 47
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Consulta entre fechas

He cambiado la forma de recoger la variable:
fecha_inicial = CDate(Request.Form("fecha_inicial"))
y tampoco va.......... :)

Si le pongo del 15 al 30 de cualquier mes, si que va, pero desde 01 al 30 no ...... me voy a volver locooooo

Última edición por nene16803; 17/10/2012 a las 15:34
  #11 (permalink)  
Antiguo 17/10/2012, 16:39
 
Fecha de Ingreso: junio-2004
Mensajes: 47
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Consulta entre fechas

Conseguido !!!!!!!!!!!!! os dejo el codigo para el que le sirva:

fecha_final = request.Form("fecha_final")
dia = Day(fecha_final)
if len(dia)=1 then
dia="0" & dia
end if
mes = Month(fecha_final)
if len(mes)=1 then
mes="0" & mes
end if
anho = Year(fecha_final)
fecha_final = mes & "/" & dia & "/" & anho

fecha_inicial = request.Form("fecha_inicial")
dia = Day(fecha_inicial)
if len(dia)=1 then
dia="0" & dia
end if
mes = Month(fecha_inicial)
if len(mes)=1 then
mes="0" & mes
end if
anho = Year(fecha_inicial)
fecha_inicial = mes & "/" & dia & "/" & anho

Consulta = "SELECT * FROM mitabla WHERE fechaBaja between #"&fecha_inicial&"# and #"&fecha_final&"#"

Gracias por todo
  #12 (permalink)  
Antiguo 18/10/2012, 05:50
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Respuesta: Consulta entre fechas

Hola, yo usaría aaaa/mm/dd en vez de mm/dd/aaaa. Es decir:

fecha_final = anho & "/" & mes & "/" & dia

(y lo mismo para fecha inicial)


Edito: esto es porque, usando dd/mm/aaaa o mm/dd/aaaa, la interpretación de la fecha está dada por la configuración del servidor. En cambio al usar año/mes/día, la interpreta correctamente independientemente de la configuración.
__________________
...___...
  #13 (permalink)  
Antiguo 23/10/2012, 14:31
 
Fecha de Ingreso: junio-2004
Mensajes: 47
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Consulta entre fechas

Gracias, asi lo he realizado.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:57.