Dica: Buscando por data no Mysql

23 07 2008

Boa Tarde,

Hoje acabei me deparando com uma consulta SQL que estava me deixando com a pulga atrás da orelha (hehe), e resolvi compartilhar a solução…

Eu necessitava fazer uma consulta entre duas datas, digamos, entre 30-06-2008 e 30-07-2008, e após muito apanhar utilizando operadores de > e <, achei uma solução melhor:

select * from tabela where data between 2008-06-30 and 2008-07-30

Assim, o Mysql filtra todos os resultados entre essas datas e os retorna corretamente 🙂 Quero ver se assim que tiver um tempo, escrevo um patch para fazer as consultas via find do ActiveRecord…

Abraços

Anúncios

Ações

Information

One response

6 08 2008
Marcus Derencius

Eu uso o between com frenquencia, que e’o mesmo que:

select * from tabela where data >= '2008-06-30' and data <= '2008-07-30'

e uma dica de performance quado o campo data for datetime no mysql é usar o cast.


select * from tabela where data >= cast('2008-06-30' as datetime) and data <= cast('2008-07-30' as datetime)

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




%d blogueiros gostam disto: