Ir para conteúdo

Arquivado

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

diegohamaz1

Problema com intervalo de datas

Recommended Posts

galera tenho a seguinte query que me esta dando discrepancia...

SELECT
                                                tabela_da_acao.DT_COLETA,
                                                tabela_da_acao.NM_CPF,
                                                tb_c.NM_COLABORADOR,
                                                tabela_da_acao.NM_CNPJ,
                                                tabela_da_acao.NM_CNPJ,
                                                tb_p.NM_PDV,
                                                tabela_da_acao.NM_PROTOCOLO
                                        FROM
                                                ".$rs_acoes['DS_TBL']." as tabela_da_acao
                                        INNER JOIN
                                                TB_COLABORADOR as tb_c ON(tb_c.NM_CPF = tabela_da_acao.NM_CPF)
                                        INNER JOIN
                                                TB_PDV as tb_p ON(tb_p.NM_CNPJ = tabela_da_acao.NM_CNPJ)
                                         WHERE
                                                tabela_da_acao.ST_REGISTRO = 1 AND
                                                AND tb_c.ST_REGISTRO = 1
                                                AND tb_p.ST_REGISTRO = 1
                                                AND tabela_da_acao.DT_COLETA BETWEEN '2014-09-01' AND  '2014-09-09'
                                       GROUP BY
                                                tabela_da_acao.NM_PROTOCOLO
                                        ORDER BY
                                                tabela_da_acao.DT_COLETA,
                                                tb_p.NM_PDV DESC

essa query me retorna 630 registro ai quando eu faço

SELECT
                                                tabela_da_acao.DT_COLETA,
                                                tabela_da_acao.NM_CPF,
                                                tb_c.NM_COLABORADOR,
                                                tabela_da_acao.NM_CNPJ,
                                                tabela_da_acao.NM_CNPJ,
                                                tb_p.NM_PDV,
                                                tabela_da_acao.NM_PROTOCOLO
                                        FROM
                                                ".$rs_acoes['DS_TBL']." as tabela_da_acao
                                        INNER JOIN
                                                TB_COLABORADOR as tb_c ON(tb_c.NM_CPF = tabela_da_acao.NM_CPF)
                                        INNER JOIN
                                                TB_PDV as tb_p ON(tb_p.NM_CNPJ = tabela_da_acao.NM_CNPJ)
                                         WHERE
                                                tabela_da_acao.ST_REGISTRO = 1 AND
                                                AND tb_c.ST_REGISTRO = 1
                                                AND tb_p.ST_REGISTRO = 1
                                                AND ( tabela_da_acao.DT_COLETA BETWEEN '2014-09-01' 
                                                           OR tabela_da_acao.DT_COLETA BETWEEN '2014-09-02' 
                                                          OR tabela_da_acao.DT_COLETA BETWEEN '2014-09-03' 
 OR tabela_da_acao.DT_COLETA BETWEEN '2014-09-04' 
 OR tabela_da_acao.DT_COLETA BETWEEN '2014-09-05' 
 OR tabela_da_acao.DT_COLETA BETWEEN '2014-09-06'
 OR tabela_da_acao.DT_COLETA BETWEEN '2014-09-07'  
 OR tabela_da_acao.DT_COLETA BETWEEN '2014-09-08' 
 OR tabela_da_acao.DT_COLETA BETWEEN '2014-09-09')

                                       GROUP BY
                                                tabela_da_acao.NM_PROTOCOLO
                                        ORDER BY
                                                tabela_da_acao.DT_COLETA,
                                                tb_p.NM_PDV DESC

ele me traz mais resultados 710, alguem pode me explicar porque isso ocorre? o campo DT_COLETA no banco é datetime....

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque o BETWEEN funciona informando duas datas, acredito que por não informar a "data maior", deve retornar tudo.


Cara, fiz uns testes aqui e BETWEEN sem o segundo parâmetro não funcionou. o.O

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trata o campo como data:

DATE(tabela_da_acao.DT_COLETA) BETWEEN '2014-09-01' AND '2014-09-09'

Não sei porque a segunda query funcionou sem o segundo parâmetro do BETWEEN.

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.