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

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

[ Hits: 22.906 ]

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 rapidinho

Mysqldump no cron do Slackware

Instalar Redmine no Ubuntu via apt-get

PHPMyAdmin - Erro 1045 (Debian - definitivo)

Backup diferente 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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts