Em uma tabela com um campo do tipo date, para fazer uma consulta apenas por mês ou apenas por ano é comum se utilizar as funções MONTH e YEAR:
select * from tabela where MONTH(campo)=2;
select * from tabela where YEAR(campo)=2008;
Porém este tipo de pesquisa sempre gera um TABLE SCAN (uma varredura em toda a tabela), ignorando os índices que por ventura existam e retardando em muito o tempo de resposta.
Uma maneira de fazer a mesma coisa e de forma mais eficiente segue abaixo:
WHERE campo BETWEEN '2008-01-01' AND '2008-01-31'
WHERE campo BETWEEN '2008-01-01' AND '2008-12-31'
Nenhum comentário:
Postar um comentário