Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Comparar datas na query


Julim

Question

Bom dia pessoal,

Estou com uma dificuldade em fazer uma comparação de data na consulta. Tenho no BD uma data no formato Y/m/d e preciso comparar com ela mesma, só que acrescida de três meses, mas não estou obtendo o resultado esperado.

Segue o código:

SELECT c1.*, DATE_FORMAT(c1.data_cad,'%d/%m/%Y') AS cadastro, DATE_FORMAT(c1.data_atualizacao,'%d/%m/%Y') AS    atualizacao, DATE_FORMAT(c1.previsao_fechamento,'%d/%m/%Y') AS previsao, c2.r_razao_social, c3.p_nome, c4.c_razao_social
FROM tb_projeto c1
LEFT JOIN tb_revenda c2 ON (c2.id_revenda=c1.id_revenda)
LEFT JOIN tb_profissional c3 ON (c3.id_profissional=c1.id_profissional)
LEFT JOIN tb_cliente c4 ON (c4.id_cliente=c1.id_cliente)
WHERE MONTH(c1.previsao_fechamento)>=MONTH(NOW())
AND MONTH(c1.previsao_fechamento)< '".mktime(0,0,0,date('m') + 3,date('d'),date('Y'))."'
AND YEAR(c1.previsao_fechamento)>=YEAR(NOW())
AND status < 9

Nas linhas 7, 8 e 9 é onde faço a comparação para que me mostre os registros deste mês em diante limitando a daqui três meses, ou seja, tem que mostrar os registros de dezembro, janeiro e fevereiro, mas só está listando os registros de dezembro.

Alguém tem uma dica?

Obrigado

Edited by Denis Courcy
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Pessoal, to quase lá. Só preciso resolver essa linha:

AND c1.previsao_fechamento <= '".mktime(0,0,0,date('m') + 3,date('d'),date('Y'))."'

Neste caso, me mostrará os registros entre a data do bd (c1.previsao_fechamento) enquanto ela for menor ou igual a tres meses para frente.

Tomando como exemplo o mes atual, dezembro, a listagem mostra os registros de dezembro de 2012, janeiro e fevereiro de 2013.

Para que eu faça a comparação, preciso usar mktime na data do banco c1.previsao_fechamento.

Alguém saberia como me ajudar?

Link to comment
Share on other sites

  • 0

Segue o código com a solução:

SELECT c1.*, DATE_FORMAT(c1.data_cad,'%d/%m/%Y') AS cadastro, DATE_FORMAT(c1.data_atualizacao,'%d/%m/%Y') AS    atualizacao, DATE_FORMAT(c1.previsao_fechamento,'%d/%m/%Y') AS previsao, c2.r_razao_social, c3.p_nome, c4.c_razao_social
FROM tb_projeto c1
LEFT JOIN tb_revenda c2 ON (c2.id_revenda=c1.id_revenda)
LEFT JOIN tb_profissional c3 ON (c3.id_profissional=c1.id_profissional)
LEFT JOIN tb_cliente c4 ON (c4.id_cliente=c1.id_cliente)
WHERE DATE(c1.previsao_fechamento)>=DATE(NOW())
AND UNIX_TIMESTAMP(c1.previsao_fechamento) <= '".mktime(0,0,0,date('m') + 3,date('d'),date('Y'))."'
AND YEAR(c1.previsao_fechamento)>=YEAR(NOW())
AND status < 9

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


  • Forum Statistics

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