PHP - Cláusula WHERE entre datas

Iniciado por maurov, 16 de Setembro de 2016, 12:47

tópico anterior - próximo tópico

maurov

No DB,  cada registro com uma data:
Na tabela mytable tem uma coluna data formatada com Type=date.

No HTML, define uma variavel chamada datafinal:
<input type="date" name="datafinal"> *aaaa-mm-dd
echo $datafinal; // mostra corretamente a data digitada no input 2016-08-31

No PHP, para listar os registros deste ano:
Funciona se fizer
$query = "SELECT *  FROM mytable  WHERE data BETWEEN CAST('2016-01-01' AS DATE) AND CAST('2016-09-16' AS DATE)";

Não funciona (listagem em branco) se fizer
$query = "SELECT *  FROM mytable  WHERE data BETWEEN CAST('2016-01-01' AS DATE) AND CAST('.$datafinal.' AS DATE)";

Seria erro de sintaxe?


maurov

#1
Si, era sintaxe.

$query="SELECT *  FROM mytable WHERE data BETWEEN '" . $from_date . "' AND  '" . $to_date . "'  ORDER by data";

Aspas simples, aspas duplas e espaços.
E não precisei usar CAST.