Como veo que todo lo tenes separado y NO en campos fecha (como es lo conveniente y para eso existe), intenta esto:
Código PHP:
SELECT dia,mes,ano,hora FROM altas
WHERE (dia>=1 and dia<=15) and
(mes>=1 and mes<=11) and (ano>=2003 and ano<=2004)
ORDER BY dia,mes,ano,hora;
Al encerrar las condiciones de día, mes y año por aparte, la consulta podría variar porque analizaría primero lo que está dentro de los paréntesis.
Pero me uno a que deberías usar campos DATE.