Ir para conteúdo
maicon_m

Retornar valor entre intervalo de datas

Recommended Posts

Olá,

 

Apesar de pesquisar e tentar de diversas formas, não estou conseguindo. A situação é a seguinte:

 

O hotel tem uma tabela com valores variáveis para as acomodações dependendo dos dias. 

 

TABELA VALORES

preço      data_inicio    data_fim

150.00   2018-04-20    2018-04-23

250.00   2018-04-24    2018-04-27

 

Quando o usuário escolhe check-in e check-out dentro dos valores de uma linha, consigo retornar com o BETWEEN. Porém, se o usuário escolher data de entrada (23) e data de saída (24), preciso retornar apenas o valor de 150,00 que foi o dia do check-in. Mas não estou conseguindo pois a consulta retorna o valor com base do dia do check-out (250,00).

 

Penso que a solução deste problema irá me ajudar a solucionar outro: quando o cliente escolhe alguns dias que se encaixam dentro de uma tarifa e outros dias em que a tarifa é diferente...

 

Desde já, obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Publica também o SQL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mysql_query("SELECT * FROM valores_acomodacoes WHERE '$entrada' BETWEEN data_inicio AND data_fim AND '$saida' BETWEEN data_inicio AND data_fim AND acomodacao = '$id' ")

 

O SQL acima retorna quando dias escolhidos dentro de uma mesma linha da tabela. Já abaixo, a questão posta na pergunta:

 

mysql_query("SELECT * FROM valores_acomodacoes WHERE '$entrada' >= data_inicio AND '$entrada' <= data_fim AND acomodacao = '$id' ") or die(mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o valor é baseado no check-in pesquise apenas por ele.

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 klonder
      Tentei incluir a máscara a seguir em um POST meu antigo, porém está fechado para novas respostas:
       
      Todavia, para futuras consultas minhas e também para ajudar outras pessoas, venho deixar uma máscara interessante que acabei de terminar em JavaScript.
      Ficou muito menor que a do POST acima:
      <script type="text/javascript"> var iCount1; var trava = false; function MaskDown(e) { if (trava == false) { iCount1 = e.value.length; trava = true; } } function MaskUp(e,mascara) { if (trava) { var textoLimpo = e.value.substr(0,iCount1+1).replace(/[\/\:\-\.]/g,""); var texto = ""; var iM = 0; var iT = 0; while (iM < mascara.length) { if (iT < textoLimpo.length) { if (mascara.substr(iM,1) == "#") { texto += textoLimpo.substr(iT,1); iT++; } else { texto += mascara.substr(iM,1); } } iM++; } e.value = texto; trava = false; } } </script> Para funcionar, basta incluir em suas tags input os eventos, como demonstrado a seguir:
      <input type="text" id="tfData" onkeydown="MaskDown(this)" onkeyup="MaskUp(this,'##/##/####')" placeholder="dd/mm/aaaa" style="width:80px" /> <br /><input type="text" id="tfHora" onkeydown="MaskDown(this)" onkeyup="MaskUp(this,'##:##')" placeholder="hh:mm" style="width:50px"/> À medida que o usuário vai digitando, o valor campo vai sendo formatado. Pode ser usado para CPF, CEP, RG, dentre outros...
       
      Divirtam-se!
    • Por Gcm Guilherme
      Olá pessoal, gostaria de pesquisar "equipe" entre duas datas, vou colar o código, alguém poderia me dizer onde está errado, sou novo no php e estou quase pirando.
       
      aqui é o código php:
      <?php if(isset($_POST['ok'])){          $select = mysql_escape_string($_POST['equipe']);     $data1 = mysql_escape_string($_POST['data_inicio']);     $data2 = mysql_escape_string($_POST['data_final']);          mysql_select_db($database_conexao, $conexao);     $query_busca = "SELECT * FROM solicitacao WHERE equipe = '$select' AND data_cadastro BETWEEN '$data1' AND 'data2'";     $busca = mysql_query($query_busca, $conexao) or die(mysql_error());     $row_busca = mysql_fetch_assoc($busca);     $totalRows_busca = mysql_num_rows($busca);      }else{          mysql_select_db($database_conexao, $conexao);     $query_busca = "SELECT * FROM solicitacao ORDER BY data_cadastro DESC";     $busca = mysql_query($query_busca, $conexao) or die(mysql_error());     $row_busca = mysql_fetch_assoc($busca);     $totalRows_busca = mysql_num_rows($busca);      } ?> Aqui vai o form html:
      <form method="post" id="form"> <div class="col-sm-2"> <select id="equipe" name"equipe" class="form-control"> <option>Escolha a equipe</option> <option>ALFA</option> <option>BRAVO</option> <option>DELTA</option> <option>CHARLIE</option> <option>ECHO</option> </select><br> </div> <div class="col-sm-2"> <input type="text" name="data_inicio" id="data_inicio" value="" class="form-control" placeholder="" onkeyup="maiuscula(this)" required><br> </div> <div class="col-sm-2"> <input type="text" name="data_final" id="data_final" value="" class="form-control" placeholder="" onkeyup="maiuscula(this)" required><br> </div> <div class="col-sm-1"> <button type="submit" class="btn btn-primary" name="ok">Buscar</button><br> </div> <div class="col-sm-1"> <a href="solicitacoes_relatorio.php">Limpar busca</a><br> </div> </form> </div> <div class="table-responsive"> <table class="table table-bordered table-condensed"> <thead> <tr class="info"> <th>EQUIPE</th> <th>DATA</th> <th>HORA</th> <th>NATUREZA</th> <th>LOGRADOURO</th> <th>Nº</th> <th>SETOR</th> <th>TO</th> <th>BO</th> </tr> </thead> <tbody> <?php do{ ?> <tr> <td><?php echo $row_busca['equipe']; ?></td> <td><?php echo $row_busca['data_cadastro']; ?></td> <td><?php echo $row_busca['hora_cadastro']; ?></td> <td><?php echo $row_busca['natureza']; ?></td> <td><?php echo $row_busca['logradouro_fato']; ?></td> <td><?php echo $row_busca['numero_fato']; ?></td> <td><?php echo $row_busca['setor_gm']; ?></td> <td><?php echo $row_busca['togm']; ?></td> <td><?php echo $row_busca['bogm']; ?></td> </tr> <?php } while($row_busca = mysql_fetch_assoc($busca)); ?> </tbody> </table> SOCOROO, RSSSSS
    • Por Alcaponepone
      Boa tarde
       
       estou fazendo um trabalho de TCC preciso saber a o tempo total que uma lampada ficou ligada usando a tabela de dados Mysql que criei que grava a hora que foi acionada e des-acionada.
      para saber o horário que a lampada ficou ligada preciso da diferença de Datatime. Estou retornando as datas liga e desligada em array() mais não consigo calcular pois acho que array esta gravando os dados como string;
       
       
      sugestões são bem aceitas,
       
       
      Obrigado
       
      $sql = "SELECT lamp_id, lamp_data, lamp_estado FROM lampadas_rel where lamp_estado=0 ORDER BY lamp_sec"; $result = $conn->query($sql); if ($result->num_rows > 0) { $i=0; while($row = $result->fetch_assoc()){ $desli[]= Date('d/m/Y H:i:s', strtotime($row["lamp_data"])); } print_r($desli); } echo "<br>"; $sql = "SELECT lamp_id, lamp_data, lamp_estado FROM lampadas_rel where lamp_estado=1 ORDER BY lamp_sec"; $result = $conn->query($sql); if ($result->num_rows > 0) { $i=0; while($row = $result->fetch_assoc()){ $liga[]= Date('d/m/Y H:i:s', strtotime($row["lamp_data"])); } print_r($liga); } $dtar = $liga - $desli;  
    • Por pwdheliosander
      Vou colocar apenas uma parte do código para entendimento:
       
      Tenho no formulário o cadastro_terceirizado.php assim: 
      <td width="64">Data Nascimento</td> <td width="319"><input class="texto_padrao_outroscampos" type="text" name="data_nascimento_terceirizados" id="datanascimento"/></td> a página vai para o processamento pelo arquivo cadastrando_terceirizando.php assim: 
      $data_nascimento_terceirizados  = $_POST['data_nascimento_terceirizados']; $dt = DateTime::createFromFormat('d/m/Y', $data_nascimento_terceirizados); $data_nascimento_terceirizados_formatada = $dt ->format('Y-m-d'); $cadastro  = "Insert into cadastro_terceirizado...... bla bla bla".  o cadastro ocorre certinho:  o usuário cadastra 01/01/19999 e no banco salva como 1999-01-01 por exemplo. 
       
      Mas quando o usuário não coloca data, ou seja deixa a data vazia,  dá este erro abaixo: 
       
      o que é isso?
    • Por pwdheliosander
      O usuário digita no formulário a data 01-03-2018  e  o banco cadastra como 2018-03-01.Como faço isso?
       
       
×

Informação importante

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