Ir para conteúdo

POWERED BY:

Arquivado

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

Edu Salinas

[Resolvido] Filtro de data

Recommended Posts

Oi, sou novo em php. Estou montando um banco de dados simples.

Tenho cadastro de clientes, data de vencimento e várias outros campos.

Gostaria de usar um select que me traga ordenado por vencimento a partir da data atual.

No campo vencimento importa apenas o dia e não o mês e ano, porém quando no mysql escolho o atributo date, ele assume o formato yyyy/mm/dd, porém somente o dia me importa, não sei se deveria utilizar o VACHAR.

 

Se alguém puder me ajudar, agradeço desde já.

 

Até mais,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem o que quer, mas deve sempre usar campo DATE para datas.

 

Um exemplo de busca por data:

$hoje = date("Y-m-d");
$sql = "SELECT * FROM `tabela` WHERE data>='$hoje'";

Você terá tudo que seja de hoje para frente

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html

 

Aí estão os tipos de datas e tempos para Mysql.

 

Pense bem comigo: Você quer ordenar somente por dia. Para isso você PRECISA SIM ter acesso ao ano e ao mês, pois, o que aconteceria se em num campo VARCHAR (como você disse) fosse gravado somente o dia, e houvesse um registro do dia 29 do mês passado, e um registro do dia 28 desse mês?

O mysql iria selecionar o mais 'recente', ou maior, e óbviamente seria o do dia 29, o que seria um erro.

 

Salve com o tipo DATE, e apenas faça assim:

 

$sql = 'SELECT * FROM `tabela` WHERE `data` > DATE_FORMAT(NOW(), '%Y:%m:%d') ORDER BY `data` DESC';

É isso aí, abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado, funcionou da maneira que você me instruiu. Porém, quando eu disse utilizar VARCHAR, era porque eu tinha por idéia criar uma página para cada mês, onde para cada cliente eu colocaria apenas o dia como referência para o vencimento. Tipo mês de novembro, e então os clientes seriam listados por ordem de vencimento em ordem crescente como referência o dia atual.

Sua idéia é bem melhor, porém pelo que eu percebi vou ter que criar um vencimento para cada mês, para que isso funcione, eu não sei fazer. Terei que criar um campo para cada vencimento. Ex: 05/01/2010, 05/02/010, 05/03/2010?

 

Muito obrigado!

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.