aline_ 4 Denunciar post Postado Fevereiro 27, 2012 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
visitante_php 0 Denunciar post Postado Fevereiro 27, 2012 nao sera '%' demais no seu primeiro exemplo? Compartilhar este post Link para o post Compartilhar em outros sites
aline_ 4 Denunciar post Postado Fevereiro 27, 2012 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
KUROL3 3 Denunciar post Postado Fevereiro 27, 2012 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
aline_ 4 Denunciar post Postado Fevereiro 28, 2012 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
Mário Monteiro 179 Denunciar post Postado Fevereiro 28, 2012 Apenas informe que um moderador altera o titulo Resolvido Compartilhar este post Link para o post Compartilhar em outros sites