Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

filtrar registros entre períodos de meses e anos

04-05-2011 11:30

Olá! Quero filtrar os registros entre meses e anos de um campo cuja data é formada por dia, mês e ano, mas que está no formato mm/dd/aaaa. A partir de campos select cheguei ao mês inicial ($MesInicial) e ao mês final ($MesFinal), e ao ano inicial ($AnoInicial) e ao ano final ($AnoFinal), mas não estou sabendo utilizar esses valores na consulta. Estou fazendo uma consulta tentando adaptar exemplo que encontrei na web (select * from tabela where DAY(CampoData) = 2), mas que não está dando certo, conforme abaixo:

$q1 = "select * from $tabela where MONTH(DataCadastro) BETWEEN '".$MesInicial."' and '".$MesFinal."' and YEAR(DataCadastro) BETWEEN '".$AnoInicial."' and '".$AnoFinal."'"; 

Se a consulta acima não estiver correta, qual pode ser a forma correta de fazer o que pretendo?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17739
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

filtrar registros entre períodos de meses e anos

04-05-2011 12:14

Tem uma explicação sobre consultar datas entre períodos no MySQL no link abaixo.

buscar-um-intervalo-de-data-inserida-na ... 1_598.html
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

filtrar registros entre períodos de meses e anos

05-05-2011 08:21

Eu vi lá, inclusive me manifestei naquele post sobre dúvida de um outro arquivo. Testei o seu código e consegui separar os elementos das datas. Entretanto, para obter os registros entre dois meses, terei de fazer uma segunda consulta, comparando o mês que está no bd (e obtido utilizando-se a função explode no campo data) com os meses entre os quais se fará a consulta. Estou certo? Se estiver, há como fazer tudo isso numa consulta só? Estou procurando, se achar, posto.
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

filtrar registros entre períodos de meses e anos

05-05-2011 09:05

Consegui fazer conforme o código que postei acima. A consulta não era feita em virtude do formato da data do registro no bd, que era mm/aaaa/dd. Coloquei no formato aaaa/mm/dd, e deu certo. Qual é o padrão para o formato do campo date do MySQL: mm/aaaa/dd ou aaaa/mm/dd?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17739
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

filtrar registros entre períodos de meses e anos

05-05-2011 10:08

Esse mesmo que usou para dar certo: aaaa/mm/dd
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

filtrar registros entre períodos de meses e anos

05-05-2011 17:26

Beleza. Obrigado.
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

filtrar registros entre períodos de meses e anos

06-05-2011 10:45

Há mais uma dúvida quanto ao formato do campo date. É correto colocar a barras separando os elementos da data no registro do bd, ou eu devo colocar hífens separando os elementos no registro, e, na exibição do mesmo, formatar a data com barras?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17739
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

filtrar registros entre períodos de meses e anos

06-05-2011 11:44

Eu não sei exatamente qual é o correto, mas, já testei formatar a data com / e -, e deu certo.

Segundo consta no link abaixo, deve ser usado o hífen para formatar a data para a consulta.

http://dev.mysql.com/doc/refman/5.5/en/ ... tions.html
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

filtrar registros entre períodos de meses e anos

06-05-2011 23:28

Eu acessei o link. Estou supondo que deve ser usado hífen para formatar a consulta se o registro no bd estiver com hífen. Num link que você passou no princípio deste post, há esta linha $data = explode("-", $dados['data']);, o registro no meu bd está com barra e o código não funcionou. Troquei o hifen pela barra no código, e funcionou. Não sei se tem a ver.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17739
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

filtrar registros entre períodos de meses e anos

07-05-2011 09:16

É isso mesmo. Porque o explode tem que encontrar o valor que foi definido, no caso o hífen.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado