Buscando intervalo de datas apenas pelo dia e mês no MySQL

Publicado por Rogério Bragil em 04/01/2007

[ Hits: 21.158 ]

Blog: http://www.bragil.net

 


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"

Outras dicas deste autor

Gerando números aleatórios em C

Limpando a "sujeirinha" no buffer do teclado

Leitura recomendada

MySQL - Recuperando o usuário root excluído por meio do usuário debian-sys-maint

Criando e associando usuários à bancos de dados específicos

Instalando o Servidor MySQL no Linux

Como alterar a base de dados padrão do MySQL

Resolver problema "Got error 127 from table handler" no MySQL

  

Comentários
[1] Comentário enviado por hunto em 06/01/2007 - 11:39h

creio que a melhor forma seja usar DAY e MONTH para pegar o dia e mês, tem que testar qual retorna mais rápido, por usar somente uma vez RIGHT pode ser que essa seja a melhor forma.. porém não sei qual função executa mais rápido.. só testando.. abraço



Contribuir com comentário