Ir para conteúdo
Fórum Script Brasil
  • 0

Diferença entre Datas dentro do SELECT


Pedro Mikosz

Pergunta

Olá galera, vejamos se alguém me ajuda em meu problema:

faço uma consulta no banco em duas tabelas por campos do tipo INT que armazenam Datas em timestamp, segue ex.:

Tabela1

campodata1 = 1323713442

Tabela2

campodata2 = 1323655200

O campodata1 armazena a data 12/12/2011 16:10:01

O campodata2 armazena a data 12/12/2011 0:00:00

Obs.: Os campos das tabelas são INT

O SQL:

$result = mysql_query("SELECT * FROM tabela1 AS tabela1, tabela2 AS tabela2 WHERE tabela1.valorA = tabela2.valorA AND tabela1.valorB = 2 AND tabela2.uid = $cliente->uid AND FROM_UNIXTIME(tabela2.campodata2, ‘%d/%m/%Y’) = FROM_UNIXTIME (tabela1.campodata1, ‘%d/%m/%Y’)");

$total_result = mysql_num_rows($result);

Entre outras condições o que mais me interessa é que os dois campos sejam considerados IGUAIS desprezando a HORA, MINUTO e SEGUNDO.

Alguma dica para comparar as duas datas desprezando HH:mm:ss?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Olá galera, vejamos se alguém me ajuda em meu problema:

faço uma consulta no banco em duas tabelas por campos do tipo INT que armazenam Datas em timestamp, segue ex.:

...

Alguma dica para comparar as duas datas desprezando HH:mm:ss?

Sim. a dica é que cada campo deve trabalhar com o tipo correto. Se é timestamp então use o tipo timestamp e não o tipo INT para armazenar o valor do campo.

Por você usar o tipo errado sua consulta sempre vai pesquisar em TABLE SCAN (que é a varredura completa das duas tabelas) em vez de usar índicers que otimizariam muito a performance da consulta.

Link para o comentário
Compartilhar em outros sites

  • 0
Ai Denis, vlw pela dica, porém eu não posso alterar os campos de INT para TIMESTAMP.

Aceito mais alguma dica, rsrs :blush:

Compare dadas (em forma de string, como é o seu caso por causa do uso da função) sempre na forma AAAA-MM-DD

Como se fosse número dia equivale casa das unidades, mes equivale a casa das dezenas e ano equivale a casa das centenas.

Leia o capítulo 6.3.4. Funções de Data e Hora do manual do MySQL para maiores informações sobre funções que trabalham com data e hora.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...