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

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

[ Hits: 20.840 ]

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

Instalando o MySQL Workbench 5.2.34 no debian 6 (squeeze)

MySQL rapidinho

Sistema gerenciador de documentos (DMS) via Web - KnowledgeTree

Resetar senha de root perdida no MySQL no CentOS e Red Hat

Configurando e utilizando MySQL no Arch Linux

  

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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts