Ir para conteúdo

POWERED BY:

Arquivado

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

blackmind

data

Recommended Posts

Ola amigos, estou com um pequeno problema, preciso fazer 1 consulta aonde eu preciso pegar o resultado de ontem, nao hoje e ontem, somente ontem, devereria ser algo assim

SELECT * FROM hits where date_sub(Now(), interval 1 day)

 

mas continua mostrando a data de hoje, quero so a de ontem

 

se alguem pode me ajudar agradeço

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que falta algo

 

SELECT * 
FROM hits 
where minha_data = date_sub(Now(), interval 1 day)

 

minha_data é o campo da tabela que precisa ser comparado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

SE o campo é tipo "date", tente isso:

 

select * from tabela where minha_data = (curdate() -1);

Compartilhar este post


Link para o post
Compartilhar em outros sites

SE o campo é tipo "date", tente isso:

select * from tabela where minha_data = (curdate() -1);

 

Exatamente isso .. mas o date sub também era pra funcionar .. o engraçado é que se você fizer dessa forma não terá os traços na data, se como é um comparador de igualdade, era pra estar verificando por estes traços também ..

mysql> SELECT ( curdate( ) - 1 ) LIKE '2012-01-22' AS `true|false`;
+------------+
| true|false |
+------------+
|          0 |
+------------+
1 row in set (0.00 sec)

 

O MySQL já se encarrega de formatar uma das datas para um padrão de comparação .. muito bacana isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites
mas o date sub também era pra funcionar

Olá.. funcionou sim, mas c/ curdate mesmo; ficaria assim:

 

select * from hits
where minha_data=date_sub(curdate(), interval 1 day);

mas só c/ campo tipo date mesmo...

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.