Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Good

Pesquisa por data em campo datetime

Recommended Posts

Criei uma tabela de agenda, aí criei uma coluna chamada data sendo do tipo datetime.

 

Query:

SELECT * FROM agenda WHERE data >= '2012-12-20' AND data <= '2012-12-27' ORDER BY data ASC

 

Há apenas um registro com a data assim: 2012-12-27 08:30:00

 

Mas ele não está pegando este registro, só quando eu altero a query para assim:

"... AND data <= '2012-12-28'..."

 

Ou seja, só busca os registros com a data menor do que a de hoje, e não menor igual.

 

Estou pensando seriamente em colocar um OR data LIKE '%2012-12-27%'... :S

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Good,

 

O problema esta em sua comparação, pois, o campo na tabela possui data e hora, quando você esta comparando esta adicionando somente data, o banco, por padrão irá adicionar as horas, sendo ela 00:00:00, logo, seria o mesmo que:

 

SELECT * FROM agenda WHERE data >= '2012-12-20 00:00:00' AND data <= '2012-12-27 00:00:00' ORDER BY data ASC

 

Uma solução, force a conversão da data, por exemplo:

 

SELECT * FROM agenda WHERE date(data) >= '2012-12-20' AND date(data) <= '2012-12-27' ORDER BY data ASC

 

Espero ter lhe sido útil, abraços.

 

_ _

Fabiano Abreu

Papo Sql - Um blog com tutoriais, dicas e truques sobre SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.