Buenas Tardes José Daniel, en tu post no mencionas qué manejador de base de datos estás utilizando.
No estoy seguro de haber entendido lo que quieres, pero me imagino que tienes una tabla con un campo tipo fecha y quieres recuperar sólo aquellos registros en donde la fecha capturada esté entre el 01/07/2007 y el 30/07/2010, exceptuando aquellos comprendidos en el mes de agosto de 2008 correcto??? Si este es el caso entonces te pongo el ejemplo de cómo sería la consulta utilizando SQL Server, si usas otro manejador de BD sería cuestión de que la adecues un poco.
Supongamos que tienes una tabla con un campo fecha de datetime, la consulta quedaría mas o menos así:
select * from Tabla
where
convert(datetime, convert(varchar, fecha, 103), 103) between
convert(datetime, '01/07/2007', 103) and convert(datetime, '30/07/2010', 103) and
convert(datetime, convert(varchar, registro, 103), 103) not between
convert(datetime, '01/08/2008', 103) and convert(datetime, '31/08/2008', 103)
Ojo, Agostro tiene 31 días mientras que tu estabas colocandolo hasta el día 30 y todas las conversiones son para majerar las fechas con el formato dd/mm/yyyy
Si continuas con problemas lo comentas en el foro para tratar de ayudarte.
Saludos
Leo.