Buscando intervalo de datas apenas pelo dia e mês no MySQL
Dica publicada em Banco de Dados / MySQL
Buscando intervalo de datas apenas pelo dia e mês no MySQL
Recentemente precisei fazer um filtro que buscasse datas entre um período indicado apenas pelo dia e mês, desprezando o ano. Encontrei uma forma simples de fazer da seguinte forma:
SELECT * FROM TABELA WHERE RIGHT(data,5) BETWEEN '11-10' AND '12-05'
A função RIGHT() pega o número de caracteres (indicado no segundo argumento) do campo (especificado no primeiro argumento), da direita para a esquerda. No caso do campo ser do tipo date, a data é armazenada no formato YYYY-MM-DD, então right(data,5) retorna o formato MM-DD (as informações do mês e dia).
Então, traduzindo a query acima ao pé da letra:
"trazer todos os campos de TABELA onde o mês e dia do campo DATA estejam entre mês 11 - dia 10 E mês 12 - dia 05"