0

Como selecionar dados de uma tabela mysql entre duas datas?

criado por Adriano Righi em 06/12/2010 10:41pm
Tenho uma tabela no banco de dados com o campo data no formato Y-m-d H:i:s e gostaria de selecionar os dados em um intervalo de datas. Por exemplo, entre os dias 10/11/2010 até o dia 09/12/2010.

Fiz ele da forma abaixo:
$query_R1 = "SELECT *, date_format(data, '%d/%m/%Y') as data FROM estoque WHERE date_format(data, '%d/%m/%Y') BETWEEN '".$_POST['datai']."' AND '".$_POST['dataf']."' ORDER BY data DESC";

Desta forma não está dando certo, ele só está verificando o dia. Como faço para resolver isto?

Lista de Respostas:

+1
08/12/2010 9:27pm
(~13 anos atrás)
Adriano, é só você mudar a abordagem. Ao invés de converter a data do BD, você converte a data enviada pelo usuário assim:

// Checar se a data eh valida
...

// Converter data para formato do BD
$data_i = preg_replace('/^(\d+)\/(\d+)\/(\d+)$/', '${3}-${2}-${1}', $_POST['datai']);
$data_f = preg_replace('/^(\d+)\/(\d+)\/(\d+)$/', '${3}-${2}-${1}', $_POST['dataf']);

// Consultar
$query_R1 = "SELECT *, date_format(data, '%d/%m/%Y') as data FROM estoque WHERE data BETWEEN '{$data_i}' AND '{$data_f}' ORDER BY data DESC";

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)