Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/04/2010, 17:48
_Alan_Smithee
 
Fecha de Ingreso: abril-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Pregunta Algoritmo de búsqueda de fechas en MySQL y php

Hola, gracias por soportar unos foros como estos y por dejar que este espacio sea público para que personas inexpertas como yo podamos preguntar.

Tengo la siguiente tabla en una base de datos:

id, fecha_inicial, fecha_final

Hay una serie de registros que me indican periodos de tiempo para esas fechas iniciales y finales. Por ejemplo

id fecha_inicial fecha_final

1 2010-01-01 2010-03-31
2 2010-04-01 2010-06-30
3 2010-07-01 2010-09-30
4 2010-10-01 2010-12-31
5 2011-01-01 2011-03-31
6 2011-04-01 2011-06-30

.
.
.

20 2015-01-01 2015-03-31
21 2015-04-04 2015-06-30

.
.
.

Bien, ¿qué quiero hacer? Que dada una fecha cualquiera (supongamos 2010-04-10), el script me diga cuál es el id en donde la fecha se encontraría. En este caso debería de devolver el número 2 pues está entre el 2010-04-01 y 2010-06-30.

He visto algunas posibilidades con la sentencia BETWEEN del MySQL pero el tema es que me tocaría recorrer fila por fila de la base de datos, entonces si existieran muchos registros creo que puede llegar a tomar bastante tiempo y consumir recursos.

Ahora bien, de manera temporal he solucionado el problema con la siguiente consulta SQL:

SELECT * FROM `tabla` WHERE YEAR( `fecha_inicial` ) = 2010

Esto me devolvería entonces los 4 primeros registros que pertenecen al año 2010. Y buscar en 4 registros consumiría menos que buscar en n registros. Ahora, ¿hay una forma de completar esta consulta SQL para que me arroje de igual manera el mes que quiero consultar para saber el id o que utilice la sentencia BETWEEN y completar el script?

Estoy usando MySQL y php (por ahora como tengo el script no he usado el php pero si es necesario no tengo problema en hacer un for o algo similar).

Muchas gracias de antemano