Ir para conteúdo

POWERED BY:

Arquivado

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

aline_

[Resolvido] Função STR_TO_DATE com GetSQLValueString

Recommended Posts

Pessoal,

 

Como devo escrever o sql usando as funções GetSQLValueString e STR_TO_DATE?

Estou fazendo assim:

 

 $query .=  sprintf(" AND STR_TO_DATE('funcionario.data_admissao','%%d/%%m/%%Y') = %s ", 
GetSQLValueString($data_admissao, "date")); 

 

Não dá nenhum erro, mas não encontra dados. Provavelmente esta faltando ou sobrando alguma aspa.

A query preenchida fica assim:

 

 AND STR_TO_DATE('funcionario.data_admissao','%d/%m/%Y') = '25/03/2005' 

 

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao sera '%' demais no seu primeiro exemplo?

 

O % a mais é por conta do sprintf, se coloco apenas um a função GetSQLValueString espera uma variavel para o d, uma para o m e uma para o y. Com o %% fica certo.

 

A primeira parte é como escrevo o sql, a segunda é como ele fica após preencher o campo no programa. Essa segunda parte peguei com debug.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se esse campo for um nome da tabela do banco funcionario.data_admissao não precisa ter aspas simples pois e deixa de ser o campo do banco e passa a ser uma simples string......

 

outra coisa me parece que a saida de STR_TO_DATE('funcionario.data_admissao','%d/%m/%Y') = '25/03/2005' não é 25/03/2005 e sim 2005-03-25

 

mas provavelmente esse não é o seu erro pois não esta saindo nada....

 

abraços espero ter ajudado

marco

 

Pessoal,

 

Como devo escrever o sql usando as funções GetSQLValueString e STR_TO_DATE?

Estou fazendo assim:

 

 $query .=  sprintf(" AND STR_TO_DATE('funcionario.data_admissao','%%d/%%m/%%Y') = %s ", 
GetSQLValueString($data_admissao, "date")); 

 

Não dá nenhum erro, mas não encontra dados. Provavelmente esta faltando ou sobrando alguma aspa.

A query preenchida fica assim:

 

 AND STR_TO_DATE('funcionario.data_admissao','%d/%m/%Y') = '25/03/2005' 

 

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Marco,

 

Tirei as aspas do funcionario.data_admissao , realmente é o campo da tabela.

Mas continua não encontrando registro.

 

No campo da tela eu digito 25/03/2005. Faço o submit e paro com o debug (CodeLobster) na linha depois de montar a query, e o resultado é:

 

 SELECT matricula, nome, DATE_FORMAT(data_admissao,'%d/%m/%Y'), DATE_FORMAT(data_demissao,'%d/%m/%Y') FROM funcionario WHERE 1=1 AND STR_TO_DATE(funcionario.data_admissao,'%d/%m/%Y') = '25/03/2005' 

 

No programa está:

 

 if (empty($data_admissao) == FALSE)   
  $query_rs_funcionario .=  sprintf(" AND STR_TO_DATE(funcionario.data_admissao,'%%d/%%m/%%Y') = %s ", GetSQLValueString($data_admissao, "date"));

 

Pessoal, desculpem... inverti as funções.

 

Alterei para:

 

if (empty($data_admissao) == FALSE)   
  $query_rs_funcionario .=  sprintf(" AND DATE_FORMAT(data_admissao,'%%d/%%m/%%Y') = %s ", GetSQLValueString($data_admissao, "date"));

 

E agora está funcionando!

 

Obrigada

 

P.S:Como faço para editar o tópico como resolvido?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apenas informe que um moderador altera o titulo

 

Resolvido

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.