Ir para conteúdo
Santos_2015

filtro sem informar campo data [resolvido]

Recommended Posts

Galera é o seguinte,

 

tenho filtro antes do montar meu select, tenho três campos no filtro: cod_tipo_item_despesa, data_inicio e data_fim. só que caso a data não tenha sido informada, minha consulta retorna falso, segue sql:

select...

where desp.cod_tipo_item_despesa like :cod_tipo_item_despesa 
			and DATE_FORMAT(desp.data_despesa,'%d/%m/%Y') BETWEEN :data_inicio AND :data_fim

 

Thanks.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual data não foi informada ?

 

Um valor não informado (null) sempre retorna false em uma pesquisa.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 minutos atrás, Motta disse:

Qual data não foi informada ?

 

Um valor não informado (null) sempre retorna false em uma pesquisa.

 

 

nenhuma das duas, nem data_inicio nem data_fim(por padrão quando não é informado é enviado "1969-12-31", tentei tratar substituindo por '%' mas não me retornou false na pesquisa), no caso seria informado apenas o "cod_tipo_item_despesa".

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ponha uma critica não permitindo data nula na pesquisa 

Compartilhar este post


Link para o post
Compartilhar em outros sites
6 horas atrás, Motta disse:

Ponha uma critica não permitindo data nula na pesquisa 

Mas o problema é que ela pode ou não ser informada, não é obrigatório

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente com coalesce 

select...

where desp.cod_tipo_item_despesa like :cod_tipo_item_despesa 
            and DATE_FORMAT(desp.data_despesa,'%d/%m/%Y') 
                  BETWEEN COALESCE(:data_inicio,MAKEDATE(2010,1)) and 
                          COALESCE(:data_fim,CURDATE())

vide

 

https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_curdate

https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_makedate

 

Nota , não uso Mysql pode ter algum erro de síntaxe nisto mas a ideia básica e tratar o valor nulo.

  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
5 horas atrás, Motta disse:

Tente com coalesce 


select...

where desp.cod_tipo_item_despesa like :cod_tipo_item_despesa 
            and DATE_FORMAT(desp.data_despesa,'%d/%m/%Y') 
                  BETWEEN COALESCE(:data_inicio,MAKEDATE(2010,1)) and 
                          COALESCE(:data_fim,CURDATE())

vide

 

https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_curdate

https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_makedate

 

Nota , não uso Mysql pode ter algum erro de síntaxe nisto mas a ideia básica e tratar o valor nulo.

 

legal, já havia tentado com coalesce, pelo que entendi está "amarrando" os intervalos... vou tetar aqui, Valeu.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Rodymb
      Bom dia!
       
      Preciso fazer um update em um campo do tipo  int de uma tabela para corrigir o horário e a informação que estou buscando está em um campo do tipo datetime de outra tabela. Fiz um update da seguinte forma:
       
      update zan_m00 set m00zc=(SELECT convert(varchar(11),dataemissao,114) FROM tab_nota_header where dataemissao between '2018-08-01 00:00:00' and '2018-08-01 23:59:59' and numpdv=111 and codloja=1 and numnota=74841) where m00af='2018-08-01' and m00za=1 and m00ac=111 and m00ad=69614
       
      Esse update retornou a seguinte mensagem:
      Falha ao converter o varchar valor '11:56:57:00' para o tipo de dados int.
       
      No lugar onde está varchar experimentei usar int, entretanto, ele faz o update somando todo o conteúdo do campo, também usei o CAST e o problema é o mesmo.
      Se eu fizer somente o select, ele retorna pra mim somente a hora, que é o que preciso, mas aí tem outro problema, no campo tipo int a hora é tudo junto 115657 e nesse select ele retorna 11:56:57.
       
      Existe alguma forma de fazer esse update da forma que preciso?
       
    • Por douglaslelis
      Olá!
       
      tenho o seguinte HTML (resumido):
       
      <div id="dados"></div>
       
      <input id="cep" name="cep" />
       
       
      <button type="button" id="buscar">Buscar</button>
       
       
       
      Tenho essa seguinte função em ajax:
       
       
      function buscar(cep)
                  {
                      var page = "exe/calcula.frete.php";
                      $.ajax
                              ({
                                  type: 'POST',
                                  dataType: 'html',
                                  url: page,
                                  beforeSend: function () {
                                      $("#dados").html("Calculando...");
                                  },
                                  data: {cep: cep},
                                  success: function (msg)
                                  {
                                      $("#dados").html(msg);
                                  }
                              });
                  }
                  
                  
                  $('#buscar').click(function () {
                      buscar($("#cep").val())
                  });
       
       
      ela pega valores do id "cep", que é um input, e envia para o arquivo exe/calcula.frete.php (POST) ...
       
      funciona perfeitamente, porém, eu gostaria de enviar dois ou mais valores nessa mesma função, por exemplo: rua, numero, etc...
       
       
      tentei o seguinte mas não funcionou:
       
       
      <input id="cep" name="cep" />
      <input id="rua" name="rua" />
      <input id="numero" name="numero" />
       
       
       
      function buscar(cep, rua, numero)
                  {
                      var page = "exe/calcula.frete.php";
                      $.ajax
                              ({
                                  type: 'POST',
                                  dataType: 'html',
                                  url: page,
                                  beforeSend: function () {
                                      $("#dados").html("Calculando...");
                                  },
                                  data: {cep: cep, rua: rua, numero: numero},
                                  success: function (msg)
                                  {
                                      $("#dados").html(msg);
                                  }
                              });
                  }
                  
                  
                  $('#buscar').click(function () {
                      buscar($("#cep", "#rua", "#numero").val())
                  });
       
       
       
      Alguém pode me ajudar por favor ?
       
    • Por gust.php
      Prezados, boa tarde.
      Estou tentando agrupar as data de um array para apresentar o seguinte resultado.
       
      10/09/2018
      xxxx xxxx xxxx xxxx
      yyyy yyyy yyyy yyyy
       
      11/09/2018
      aaaa aaaa aaaa aaaa
      bbbb bbbb bbbb bbbb
      cccc cccc cccc cccc ccc
       
      Meu resultado esta ficando assim:
       
      10/09/2018
      xxxx xxxx xxxx xxxx
      10/09/2018
      yyyy yyyy yyyy yyyy
       
      11/09/2018
      aaaa aaaa aaaa aaaa
      11/09/2018
      bbbb bbbb bbbb bbbb
      11/09/2018
      cccc cccc cccc cccc ccc
       
      Estou tentando assim:

      $lista = $sdao->periodo($cli,$for,$mot,$file,$inicio,$fim);          ----> Consulta feita no MySQL     $day = 0;     $servico = Array();          foreach ($lista as $p) {              $diaPer = $p->getDATA_INICIO()->format("d/m/Y");                     if ($diaPer != $day) {                            $day = $p->getDATA_INICIO()->format("d/m/Y");                      }                  $servico[] = $p;          }
    • Por aranisia
      Bah noite!
       
      Eu fiz um template bem legal mas eu gostaria de colocar algumas coisas nele como personalizáveis pelo painel administrativo.
      Por exemplo, no meu template , logo no header.php é exibido um vídeo do youtube, eu gostaria que no painel administrativo do wordpress tivesse um campo criado por mim
      para eu poder mudar o caminho do video quando eu quisesse sem precisar recorrer à edição de código html toda vez para fazer isso.
       
      Eu gostaria que aparecesse lá em Aparência > Personalizar.
       
      Alguém sabe como é possível fazer isso? Tenho que incluir algo no functions.php?
       
    • Por josenildo_tiago
      Olá pessoal, sou novo no PHP, e estou enfrentando dificuldades no calculo de duas datas.
      Subtrair a data atual pela data que o usuário digitar no campo de texto.
       
      DESDE JÁ AGRADEÇO OS QUE DE BOM GRADO SE DESPUSER A ME AJUDAR NESSE ESTUDO.
      segue abaixo código do form pra melhor entendimento.
      <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8" /> <title>Calcular Ano</title> </head> <body> <form method="POST" action="data.php"> <label>Data de Nascimento</label> <input type="text" name="dataNasc" placeholder="00/00/0000" ><br><br> <input type="submit" name="btncalc" value="Calcular"> </form> </body> </html>  
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.