Preciso fazer um select no bd que busque os registros com status "pendente" que foram imputados num intervalo de 6 meses atrás até o dia atual.
Para tal, utilizei o seguinte código:
<? $dataf=date('d/m/Y'); $datai=date('d/m/Y', strtotime('-6 months')); /* testando o resultado das variaveis */ echo "Data de hoje: " .$dataf. " Data de seis meses atrás: " .$datai. ""; ?>
Até então beleza, retornou as datas corretamente. No meu banco de dados tenho a data que o registro foi feito. Dessa forma eu busco com o seguinte select:
$sql= "SELECT * FROM registros WHERE campo= '$variavel' and status = 'pendente' and data between to_date('&dataf','%d/%m/%Y') AND to_date('&datai','%d/%m/%Y')";
Usando o to_date retorna erro de sql Usando date_format ele não retorna erro, mas também não busca o valor.
o campo data no banco tá com o formato DD/MM/AAAA
Poderiam me auxiliar?
Detalhe: Rodei o sql direto no banco, e retornou o resultado correto.
SELECT * FROM registros WHERE campo = '1' and status = 'pendente' and data between ('04/03/2015') AND ('04/09/2015')
O que mostra que o problema está na formatação da data na variável, o que devo alterar?
Pergunta
Allgusto
Boa noite pessoal,
Preciso fazer um select no bd que busque os registros com status "pendente" que foram imputados num intervalo de 6 meses atrás até o dia atual.
Para tal, utilizei o seguinte código:
<?
$dataf=date('d/m/Y');
$datai=date('d/m/Y', strtotime('-6 months'));
/* testando o resultado das variaveis */
echo "Data de hoje: " .$dataf. " Data de seis meses atrás: " .$datai. "";
?>
Até então beleza, retornou as datas corretamente.
No meu banco de dados tenho a data que o registro foi feito.
Dessa forma eu busco com o seguinte select:
$sql= "SELECT * FROM registros WHERE campo= '$variavel' and status = 'pendente' and data between to_date('&dataf','%d/%m/%Y') AND to_date('&datai','%d/%m/%Y')";
Usando o to_date retorna erro de sql
Usando date_format ele não retorna erro, mas também não busca o valor.
o campo data no banco tá com o formato DD/MM/AAAA
Poderiam me auxiliar?
Detalhe: Rodei o sql direto no banco, e retornou o resultado correto.
SELECT * FROM registros WHERE campo = '1' and status = 'pendente' and data between ('04/03/2015') AND ('04/09/2015')
O que mostra que o problema está na formatação da data na variável, o que devo alterar?
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.