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

SQL Select entre dos fechas

Estas en el tema de SQL Select entre dos fechas en el foro de ASP Clásico en Foros del Web. Hola a todos, Tengo un problemilla que no soy capaz de resolver y encima es de lo más sencillo. La parte facil de la app. ...
  #1 (permalink)  
Antiguo 16/10/2011, 03:59
 
Fecha de Ingreso: agosto-2011
Mensajes: 68
Antigüedad: 12 años, 8 meses
Puntos: 11
SQL Select entre dos fechas

Hola a todos,

Tengo un problemilla que no soy capaz de resolver y encima es de lo más sencillo. La parte facil de la app. que estoy haciendo, no me funciona:

Tengo esta cadena SQL:

st="SELECT * FROM presupuestos WHERE (fecha >= #"&fecha1&"# AND fecha <= #"&fecha2&"#) ORDER BY id DESC"

Fecha1 es siempre el primer día de un mes y Fecha2 es siempre el último día del mes de Fecha1. Fecha1 siempre es menor que Fecha2, lógicamente.

Pues no funciona. Me saca todos los registros existentes hasta fecha2, no el intervalo que quiero. He probado a utilizar BETWEEN pero pasa lo mismo.

La DB es Access y no sé que puede ocurrir.

Alguna solución?
  #2 (permalink)  
Antiguo 16/10/2011, 04:05
Avatar de ayukkonen  
Fecha de Ingreso: octubre-2010
Ubicación: Sevilla
Mensajes: 355
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: SQL Select entre dos fechas

No pongas ninguna consulta. Dime directamente qué quieres hacer. Porque me he liado un poco leyéndote.

Saludos.
__________________
Facebook | Twitter
  #3 (permalink)  
Antiguo 16/10/2011, 04:08
 
Fecha de Ingreso: agosto-2011
Mensajes: 68
Antigüedad: 12 años, 8 meses
Puntos: 11
Respuesta: SQL Select entre dos fechas

Pues casi mejor sí, además lo he hecho muchas veces, pero por lo que sea, no funciona.

Quiero que salgan todos los registros entre dos fechas en una DB de Access
  #4 (permalink)  
Antiguo 16/10/2011, 11:04
Avatar de ayukkonen  
Fecha de Ingreso: octubre-2010
Ubicación: Sevilla
Mensajes: 355
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: SQL Select entre dos fechas

No he manejado nunca ACCESS, yo siempre he utilizado Oracle.

Un ejemplo de un select que muestre los registros que están situados entre una fecha y otra, que yo sepa es algo así como...

select * from nombre_tabla where fecha1 <= fecha2;

Creo que es así de simple.

Cuéntanos a ver si consigues sacarlo adelante.

Saludos y suerte.
__________________
Facebook | Twitter
  #5 (permalink)  
Antiguo 16/10/2011, 23:26
Avatar de Batan  
Fecha de Ingreso: septiembre-2010
Ubicación: Madrid
Mensajes: 408
Antigüedad: 13 años, 7 meses
Puntos: 63
Respuesta: SQL Select entre dos fechas

Podrias sacar todos los registros de esa tabla.

Cita:
Select * FROM [nombreTabla]
Y luego usar ASP para coger los registros que te apetescan.

Código ASP:
Ver original
  1. If rs("fecha") > fecha1 and rs("fecha") < fecha2 Then
  2.      Consultas
  3. End if

Saludos
  #6 (permalink)  
Antiguo 17/10/2011, 10:38
 
Fecha de Ingreso: agosto-2011
Mensajes: 68
Antigüedad: 12 años, 8 meses
Puntos: 11
Respuesta: SQL Select entre dos fechas

Batan, lo tuyo ha funcionado. Muchas gracias.

Me imagino que cuando tenga muchos registros será mucho más lento que haciendo el SELECT, pero me saca del apuro.

Un saludo a todos.
  #7 (permalink)  
Antiguo 17/10/2011, 17:15
Avatar de Batan  
Fecha de Ingreso: septiembre-2010
Ubicación: Madrid
Mensajes: 408
Antigüedad: 13 años, 7 meses
Puntos: 63
Respuesta: SQL Select entre dos fechas

Yo siempre he creido que si no se opera en base de datos pues mejor, estaba equivocado entonces.
Bueno en todo caso la respuesta seria que...
Tu access por defecto tiene el formato mm/dd/aaaa, osea 10/18/2011.
Y en tu query la variable fecha con la que lo comparas seria del formato dd/mm/aaaa, por lo cual al no coindir los datos no te muestra nada...
Deberias crear algo (funcion, script,...) para cambiar el orden de la fecha al formato de access. Podrias usar replace y split.

Saludos!!!

Última edición por Batan; 17/10/2011 a las 17:22
  #8 (permalink)  
Antiguo 17/10/2011, 22:22
 
Fecha de Ingreso: agosto-2011
Mensajes: 68
Antigüedad: 12 años, 8 meses
Puntos: 11
Respuesta: SQL Select entre dos fechas

Supongo que dependerá del motor de la base de datos y de la velocidad de procesamiento del servidor... pero vamos que se va a quedar así, que funciona bien.

Lo de las fechas, pues hice algo así pero para forzar a meter en la base de datos la fecha en formato dd/mm/aaaa y se lo traga, pero ahí debe estar el problema.

Muchas gracias por la ayuda.
  #9 (permalink)  
Antiguo 18/10/2011, 07:39
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: SQL Select entre dos fechas

Hola. Hace Mucho no uso ASP + Access, pero... intentá nuevamente con la primer consulta que colocaste asegurándote que los datos de las variables fecha1 y fecha2 estén en formato AAAA/MM/DD.

Saludos
__________________
...___...
  #10 (permalink)  
Antiguo 21/10/2011, 16:07
 
Fecha de Ingreso: octubre-2011
Ubicación: ubicacion
Mensajes: 6
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: SQL Select entre dos fechas

Select * from tabla where campo_fecha between fecha1 and fecha2
  #11 (permalink)  
Antiguo 22/10/2011, 05:08
 
Fecha de Ingreso: agosto-2011
Mensajes: 68
Antigüedad: 12 años, 8 meses
Puntos: 11
Respuesta: SQL Select entre dos fechas

Muchas gracias cyber_tron, pero between tampoco me funcionó...
  #12 (permalink)  
Antiguo 24/04/2013, 08:36
 
Fecha de Ingreso: abril-2013
Mensajes: 1
Antigüedad: 11 años
Puntos: 0
Respuesta: SQL Select entre dos fechas

Valla este tema ya tiene tiempo, al menos puedo dar mi respuesta:
usa procedimiento almacenado es la mejor opción, el proceso se hace en el mismo server y te devuelve resultado, , aparte que las sentencias son conocidas, muy aparte en el lenguaje de programación que esteis usando, te doy unos alcances, si de algo te pueda servir,
usando un procedimiento almacenado lo que hago para estos casos es, establecer parametros
@pFecha1 varchar(8),
@pFecha2 varchar(8)
-- desde donde lo invoques, las fechas que ingreses deben tener este formato AAAMMDD para el filtro

-- consultando tabla Ventas
-- usando la función Convert para que te transforme el formato de fecha a . AAAAMMDD

Select * from ventas
where convert(varchar(8), fecha_documento, 112) Between @Fecha1 and @Fecha2

. Si solo usas cadenas es casi lo mismo, no le pondrias el "@", o depende en que lenguaje estes, pero recuerda el formato de fecha que debes pasar.

. UTILIZO ESTE ESTILO DE CONSULTAR POR FECHAS Y ME VA MUY BIEN, CONFIO MAS EN ESTA SENTENCIA QUE EN OTRAS. SALUDOS COLEGA.

Última edición por maccsystem_developme; 24/04/2013 a las 08:44

Etiquetas: access, asp, sql
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 18:57.