Ir para conteúdo

Arquivado

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

danmartinsiss

SELECT usando o STR_TO_DATE

Recommended Posts

Bom dia estou tendo dificuldade quanto a pesquisa por data estou utilizando o formato conforme meu codigo abaixo porem esta retornando apenas "QUERY WAS EMPTY" alguem poderia me dar uma força.

 

segue abaixo o codigo de pesquisa

$dt1_rsrelatorio = "-1";
if (isset($_GET['dt1'])) {
  $dt1_rsrelatorio = $_GET['dt1'];
}
$dt2_rsrelatorio = "-1";
if (isset($_GET['dt2'])) {
  $dt2_rsrelatorio = $_GET['dt2'];
}
mysql_select_db($database_dbagenda, $dbagenda);
$query_rsrelatorio = sprintf("SELECT * FROM ligparticular WHERE STR_TO_DATE(datacadastro, '%d%m%Y') BETWEEN dt1 AND dt2 ORDER BY datacadastro DESC", 
GetSQLValueString($dt1_rsrelatorio, "date"),
GetSQLValueString($dt2_rsrelatorio, "date"));
$rsrelatorio = mysql_query($query_rsrelatorio, $dbagenda) or die(mysql_error());
$row_rsrelatorio = mysql_fetch_assoc($rsrelatorio);
$totalRows_rsrelatorio = mysql_num_rows($rsrelatorio);

Compartilhar este post


Link para o post
Compartilhar em outros sites

O primeiro problema é que $dt1_rsrelatorio e $dt2_rsrelatorio estão com valores inválidos. "-1" não é um valor de data válido

 

Outro problema é que seu sprintf está gerando uma string inválida. Dê um echo em $query_rsrelatorio e entenderá. As substituições são feitas em padrões %x, onde x é o tipo de dado (como %s, %d etc). Você colocou d1 e d2 na query. Se quiser gerar um "%" literal, use "%%". Veja a documentação de sprintf

 

Links úteis:

http://php.net/sprintf

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora mais uma duvida, eu gostaria de adicionar um filtro de ligações, particulares e corporativas,

 

eu teria que criar mais um SELECT ou daria para adicionar no mesmo SELECT ???

 

criei um tag select no form de busca.

 

 

a query esta assim

"SELECT * FROM ligparticular WHERE datacadastro BETWEEN %s AND %s UNION SELECT * FROM ligparticular WHERE lig_tipo = $tipo_relatorio ORDER BY datacadastro DESC"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quer separar as ligações particulares das corporativas, há duas formas:

 

1. Fazer dois SELECTs

2. Um único SELECT com todas. Dessa forma, terá de separar na programação, dentro do loop que busca os resultados

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.