> Consultar Fechas de 01/05/2003 a 10/05/2003
SELECT * FROM tabla
WHERE tabla.fecha BETWEEN "05/01/2003" AND "05/10/2003"
Nota que en los distintos SQL, las fechas van siempre en formato MM/DD/AAAA (algunos motores soportan AAAA.MM.DD) y los delimitadores para los literales de fecha varían según el motor de que se trate:
#05/25/2003# --> Access
{05/25/2003} --> FoxPro
"05/25/2003" y/o '05/30/2003' --> La mayoría
> Consultar Meses del 01/03/2003 al 01/05/2003
En el ejemplo de arriba, ¿quieres consultar del 1 de Marzo al 30 de Abril o al 31 de Mayo? Como sea, una forma es como la consulta anterior, pero poniendo la fecha límite correspondiente. Ej:
SELECT * FROM tabla
WHERE tabla.fecha BETWEEN "03/01/2003" AND "05/31/2003"
Otra forma es obtener los meses y años de las fechas y comparar esos valores. Si las fechas son del mismo año, la consulta es sencilla.
SELECT * FROM tabla
WHERE (EXTRACT(YEAR FROM tabla1.fecha)=2003)
AND (EXTRACT(MONTH FROM tabla1.fecha) BETWEEN 3 AND 5)
En vez de EXTRACT(YEAR FROM fecha) y EXTRACT(MONTH FROM fecha) como es el caso de Paradox e Interbase, muchos motores usan YEAR(fecha) y MONTH(fecha), o GETYEAR(fecha) y GETMONTH(fecha).
Espero haber podido servirte de algo.
Ernesto De Spirito
http://www.latiumsoftware.com/es/index.php