Autor Tópico: PHP - Cláusula WHERE entre datas  (Lida 3512 vezes)

Offline maurov

  • Usuário Ubuntu
  • *
  • Mensagens: 446
    • Ver perfil
PHP - Cláusula WHERE entre datas
« Online: 16 de Setembro de 2016, 12:47 »
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?


Offline maurov

  • Usuário Ubuntu
  • *
  • Mensagens: 446
    • Ver perfil
Re:PHP - Cláusula WHERE entre datas
« Resposta #1 Online: 16 de Setembro de 2016, 15:01 »
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.
« Última modificação: 16 de Setembro de 2016, 15:03 por maurov »