Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Bases de Datos Microsoft (Buscar entre 2 fechas)

Estas en el tema de Bases de Datos Microsoft (Buscar entre 2 fechas) en el foro de Bases de Datos General en Foros del Web. Hola yo he estado trabajando con Bases de datos pero tengo un problema para los .mdb. tratare de exponerlo a detalle: Tengo una base da ...
  #1 (permalink)  
Antiguo 04/05/2004, 15:24
 
Fecha de Ingreso: mayo-2004
Ubicación: Oaxaca
Mensajes: 34
Antigüedad: 20 años
Puntos: 0
Busqueda Bases de Datos Microsoft (Buscar entre 2 fechas)

Hola yo he estado trabajando con Bases de datos pero tengo un problema para los .mdb.

tratare de exponerlo a detalle:

Tengo una base da datos, con 1 tabla: Rentas
en donde existen registros guardados con distintas fechas.

Ahora deseo realizar una consulta en donde me regrese los registros existentes dentro de un rango de fecha, supongamos FEcha 1 y Fecha 2.

lo anterior quedaria en la cadena asi:

"SELECT FROM Rentas WHERE Fecha >=" & Fecha1 & " AND Fecha <=" & Fecha2

End onde la FEcha esta previamente formateada para que quede de esta forma:

#yyyy/mm/dd#

Lo cual es una fecha váilda para consulta de SQL

Eso parecia la solucion y de echo funciona pero solo para el mismo mes, es decir si en fecha1 pongo 1 de abril 2004 y en fecha2 pongo 15 de abril 2004 lo hace correctamente, pero si pongo en fecha2 5 de mayo de 2004 no me regresa ningun registro.

Ya intente probar los filtros y nada lo unico que se me ocurre es hacerlo para el primer intervalo y despues comparar registro a registro devuelto si cumple con mi segunda condiciòn, pero esto es mucho uso de CPU no?

ademas si en SQL se puede por que en Microsoft no??

Y bueno forzozamente debe ser en MS ya que las DB ya estan creadas y las utilizan otros programas...

Ojala me puedan ayudar. Gracias
  #2 (permalink)  
Antiguo 04/05/2004, 15:33
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
que estas usando, access, sqlserver u otro?
en access las fechas van entre signos # y en formato mes-dia-año.
en sqlserver el formato depende de la configuracion regional pero el valor a comparar va entre comillas simples.
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #3 (permalink)  
Antiguo 04/05/2004, 15:39
 
Fecha de Ingreso: mayo-2004
Ubicación: Oaxaca
Mensajes: 34
Antigüedad: 20 años
Puntos: 0
si es un poco confuso...

Estoy utilizando Access desde VB con un ADODB.connection, ADODB.recordset.

Para el recordset utilizo las cadenas SQL.

Gracias por contestar mi msj.

  #4 (permalink)  
Antiguo 04/05/2004, 18:56
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
escribe las consultas sql asi:

"SELECT FROM Rentas WHERE Fecha >=#" & format(Fecha1,"mm-dd-yyyy") & "# AND Fecha <=#" & format(Fecha2,"mm-dd-yyyy") & "#"
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #5 (permalink)  
Antiguo 05/05/2004, 18:04
 
Fecha de Ingreso: mayo-2004
Ubicación: Oaxaca
Mensajes: 34
Antigüedad: 20 años
Puntos: 0
Mira ya le intente de todo y nada mas no quiere hacerlo como debe, lo que estaba haciendo es consultar primero por dia, luego el mes y luego el año, muhco rollo no?

Pero buscando en la red encontre esto: "He intentado de todo para hacer una consulta entre dos fechas y bla bla bla, después de mucho probar solo funciona así"

La fecha debe de estar en el formato americano "yyyy/mm/dd" tanto en la consulta como en el sistema y TARAN FUNCIONÓ

Pero la gran duda aún la tengo, digo no en todos los lugares donde instale el soft voy a cambiar la configuración regional no??

Gracias de todos modos...
  #6 (permalink)  
Antiguo 05/05/2004, 18:33
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
raro es, por que se supone que el formato americano es mes/dia/año y a access no le interesa la configuracion regional.
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #7 (permalink)  
Antiguo 05/05/2004, 18:37
 
Fecha de Ingreso: mayo-2004
Ubicación: Oaxaca
Mensajes: 34
Antigüedad: 20 años
Puntos: 0
Si de echo si le interesa, ya que al crear la tabla y asignar al campo Fecha el tipo Date te pregunta que tipo quieres que sea, long date, short date, etc. Y si lo cambias aún en los registros guardados te los modifica, Pero pues si me equivoco o a lo mejor se utilziar bien el access o algo anda mal en mi consulta desde VB hazmelo saber de antemano muchas gracias por la molestia de leer mis mansajes.
  #8 (permalink)  
Antiguo 07/05/2004, 02:38
 
Fecha de Ingreso: mayo-2004
Mensajes: 16
Antigüedad: 20 años
Puntos: 0
Hola a mi me pasa 3 cuartos de lo mismo introduciendolo en un filtro, si lo pongo entre '#' me salen registros q no estan en el rango de fechas pero si las quito me sale como si fuera una consulta parametrizada y me vuelve a pedir las dos fechas aunque las haya introducido anteriormente por teclado en un formulario eso SI asi si que te salen los REGISTROS DESEADOS ENTRE LAS FECHAS.


fecInicial = TxtFecInicial
fecFinal = TxtFecFinal
strFiltro = "[FT_INF] >=#" & fecInicial & "# And [FT_INF] <=#" & fecFinal & "#"
DoCmd.OpenReport "Informes Terminados", acViewPreview, , strFiltro

teneis alguna solucion para q usando ´#´ me salgan los registros deseados o para q no me salgan de manera de consulta parametrizada??, el formato de las fechas esta bien y es "dd/mm/aaaa"
  #9 (permalink)  
Antiguo 07/05/2004, 08:41
 
Fecha de Ingreso: mayo-2004
Mensajes: 45
Antigüedad: 20 años
Puntos: 0
aun no han dicho como consultar entre fechas

lo unico que me ha salido para consultas es esto y esto si que sale
"select * from xxxx where fecha_ag BETWEEN format('" & fechaini & "','dd/mm/yyyy') AND format('" & fechafin & "','dd/mm/yyyy') ORDER BY fecha_ag "

pero cuando quiero hacer

"select * from xxxx where (fecha_inicio >='" & fechaini & "') AND (fecha_termino <= '"& fechafin & "' )"

la primera consulta se me ejecuta sin problemas, ahora...la ultima la he cambiado con # y sin # con comillas simples dobles etc....y no sale.....

fecha_termino y fecha_inicio campos de la base de datos
fechaini y fechafin variables

con formato fecha dd/mm/aaaa

alguien sabe como comparar dos fechas pero que diga de verdad la solucion?

grax a cualquier respuesta
  #10 (permalink)  
Antiguo 07/05/2004, 09:22
 
Fecha de Ingreso: mayo-2004
Mensajes: 45
Antigüedad: 20 años
Puntos: 0
bueno ya me salio espero aportar con algo siempre complicado como las fechas......ahora si resulta de ambas formas y no tendran nunca problemas por lo menos al comparar fechas con access

una fecha que se encuentre entre dos valores

strSQL = "SELECT * FROM xxxx WHERE fecha BETWEEN format('" & fechaini & "','dd/mm/yyyy') AND format('" & fechafin & "','dd/mm/yyyy') ORDER BY fecha"

fecha = campo en la base de datos
fechaini y fechafin = variables tipo fecha

dos campos fecha que se comparan con dos variables

strSQL = "SELECT *FROM xxxx Where fecha1 >= format('" & fechaini & "','dd/mm/yyyy')AND fecha2 <=format('" & fechafin & "','dd/mm/yyyy')"

fecha1 y fecha2 campos en la base de datos
fechaini y fecha fin variables tipo fecha

espero que les sirva me costo harto dar con esto

suerte a todos
  #11 (permalink)  
Antiguo 26/05/2004, 17:02
 
Fecha de Ingreso: mayo-2004
Mensajes: 1
Antigüedad: 20 años
Puntos: 0
De acuerdo

Gracias DKDENTE lo había intentado todo para hacer las consultas por fechas.... te pasaste.
  #12 (permalink)  
Antiguo 28/05/2004, 08:51
 
Fecha de Ingreso: mayo-2004
Mensajes: 45
Antigüedad: 20 años
Puntos: 0
es para que nos ayudemos entre todos....esa es la idea....ahora de paso necesito hacer un datagrid.....y no tengo idea alguien sabe?
  #13 (permalink)  
Antiguo 31/05/2004, 02:09
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años
Puntos: 0
Vamos por partes, porque el mensaje dio para muchas cosas.

En Access, como en cualquier base de datos las fechas se almacenan como números, por tanto la configuración regional no afecta a como se almacena una fecha, cuando creas un campo con tipo de dato fecha, y puedes indicar si quieres fecha larga, corta.... es sólo un formato, y sólo afecta a como se va a mostrar esa información si la consultas desde el propio Access.

La forma de consultar fechas en access es con almohadillas, tal y como te había dicho claudiovega, y con formato mm/dd/aaaa, si para que te funcione debes cambiar el formato a dd/mm/aaaa, puede que sea por la cadena de conexión que estás utilizando, en el ADO.Connection, probablemente estás definiendo idioma, es solo una suposición.

En cuanto a como hacer la consulta, te lo indicaron bien, debes formatear la entrada, la variable o cuadro de donde estés cogiendo la fecha, y aplicarle mm/dd/yyyy, ya te digo que eso puede depender, de si en la cadena de conexión estás expecificando idioma.

Un saludo
  #14 (permalink)  
Antiguo 29/04/2012, 09:51
 
Fecha de Ingreso: septiembre-2009
Ubicación: CONCEPCIÓN CHILE
Mensajes: 4
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Bases de Datos Microsoft (Buscar entre 2 fechas)

Tal vez haya pasado mucho tiempo desde q se hizo esta pregunta pero otra forma de hacer filtro por fecha, usando SQL en Access 2003, es la siguiente.
Detallo lo q hago: En este caso actualizo el campo Estado de la Tabla Ventas, donde Estado sea igual a Pendiente y q además Fecha de Factura sea mayor q fecha actual

Tabla : Ventas
Campos : Estado, Fecha_Factura
Variables: fecha_actual As Variant

fecha_actual = Date
Date: es la función q muestra la fecha del PC.

Sintáxis:

xxx = "UPDATE Ventas SET Estado = 'Vencido' WHERE Estado = 'Pendiente' AND Fecha_Factura > Format('" & fecha_actual & "', 'dd-mm-yyyy');"
DoCmd.RunSQL xxx

El formato de la variable fecha_actual, la coloco de esa forma, ya q en mi configuración regional, la tengo así.

Espero ayudar a más de alguien, saludos desde Concepción -CHILE
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:17.