Jump to content
Fórum Script Brasil
  • 0

Diferença entre Datas dentro do SELECT


Pedro Mikosz

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652.1k
×
×
  • Create New...