Jump to content
Sign in to follow this  
emersonandree

CALCULO DE HORAS

Recommended Posts

então...

estou fazendo um calculo de diferença de horas, ja fiz isso antes, teria um modelo mas hoje me deparei com um problema que não esperava, preciso de uma ideia de vocês para tal calculo.

 

meu trecho de código.

(TO_DATE(HR.H_ENTRA,'DD/MM/YYYY HH24:mi') - TO_DATE(DG.ENTRADIGIT,'DD/MM/YYYY HH24:mi'))

oque acontece. se fosse calculo com datas(dias) iguais sim funciona.

mas o problema e que o meu HR.H_ENTRA e um dado de histórico de horário. ou seja do mês 3...

 

e o DG_ENTRADIGIT e a data de hoje.

 

então ele me trás a diferença de horas desde o mês 3 ate a data atual + diferença de horas. mas eu preciso so da diferença de horas.

Share this post


Link to post
Share on other sites

Traga as duas datas para uma data arbitrária tipo 01/01/2016

to_date('20160101' || to_char_data1,'hh24miss') , 'yyyymmddhh24miss')  -
to_date('20160101' || to_char_data2,'hh24miss') , 'yyyymmddhh24miss')
  • +1 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By Viniciusr9
      Boa tarde pessoal,
      basicamente eu preciso do retorno de horas entre duas datas, porém tenho condições a tratar .
      basicamente tenho 2 colunas ( dt_fim e dt_ini ) que representam data final e data inicial. Preciso da diferença entre as duas retornada em uma outra coluna (hr_ausencias) , porém a cada dia posso computar no máximo 9 horas, e desconsiderar finais de semana e feriados( esses cadastrados em uma tabela) . Seria melhor tratar isso com uma Trigger , um Script PL/SQL , como me sugerem? Agradeço quem puder ajudar.
    • By asacap1000
      Galera preciso de uma ajuda, não sei mais nem como procurar a cabeça está dando nó kkkk.
      Tenho projeto que estará controlando o tempo de acesso no estabelecimento impondo um limite de 100 minutos.
      Dentro do mesmo dia estou conseguindo realizar os calculos normais, porém se o usuário entrar 23:00 ele terá que sair no máximo às 00:40.
      O horário eu consegui montar conforme o select abaixo a data mantém a mesma da entrada.
      select aces.seqreg SEQUENCIA, aces.diracc SENTIDO, aces.horacc MINUTOS, --acesso em minutos (aces.horacc + 100) LIMITE, --limite de acesso foi adicionado mais 100 minutos CONVERT(varchar(2), Day(aces.datacc)) + '/' + CONVERT(varchar(2), MONTH(aces.datacc)) + '/' + CONVERT(varchar(4), Year(aces.datacc)) + ' ' + right( '00' + cast(aces.horacc / 60 as varchar), 2) + ':' + right( '00' + cast(aces.horacc - ((aces.horacc / 60) * 60) as varchar), 2 ) AS HORA,--data e hora de entrada CONVERT(varchar(2), Day(aces.datacc)) + '/' + CONVERT(varchar(2), MONTH(aces.datacc)) + '/' + CONVERT(varchar(4), Year(aces.datacc)) + ' ' + right( '00' + cast( ((aces.horacc + 100)%1440)/60 as varchar), 2) + ':' + right( '00' + cast(((aces.horacc + 100)%1440)%60 as varchar), 2 ) 'SAIDA', --data e hora que deve sair Convert(Char(5),GetDate(),114) ATUAL from kansas.kansas.r070ara aces LEFT JOIN kansas.kansas.r090mvi mv on aces.numcra = mv.numcra and aces.numdoc = mv.numdoc where CONVERT(DATETIME, CONVERT(NVARCHAR(10), aces.datacc, 103), 103) >= CONVERT(DATETIME, '29/09/2018', 103) and CONVERT(DATETIME, CONVERT(VARCHAR(10), aces.datacc, 103), 103) <= CONVERT(DATETIME, '29/09/2018', 103) and (aces.coddsp like '1') and aces.numdoc = '325605397' order by aces.seqreg, aces.nompes, aces.coddsp O problema está nesta parte do select:
       
      CONVERT(varchar(2), Day(aces.datacc)) + '/' + CONVERT(varchar(2), MONTH(aces.datacc)) + '/' + CONVERT(varchar(4), Year(aces.datacc)) + ' ' + right( '00' + cast( ((aces.horacc + 100)%1440)/60 as varchar), 2) + ':' + right( '00' + cast(((aces.horacc + 100)%1440)%60 as varchar), 2 ) 'SAIDA', --data e hora que deve sair A parte de data ele não traz a data seguinte na imagem abaixo a saída deveria ser 30/09/2018 01:27
       

       
      Alguém poderia me dar uma força tenho que entregar essa semana este projeto no trabalho e está muito punk a bagaça...
       
    • By Wanderson Moreira
      tenho uma tabela no banco que tem os campos empresa, executor, e tempo (no formato time( (00:00:00.000000))

      eu consigo selecionar todas as empresas de um determinado executor, até ai facil..
      porem como posso fazer para pegar o tempo de todas as empresas desse executor para somar o total de horas?
       
      Obrigado =)


       
    • By jdlucena
      Estou usando o PHPExcel para mostrar campos de uma planilha excel no PHP, porém tem um campo com o seguinte dado:
       
      03/01/1900 05:00:00
      No qual é exibido: 77:00
       
      Preciso que mostre no PHP o mesmo valor que exibe no excel, o valor de 77:00
       
      O valor que está sendo mostrado é 3.2083333
       
      Como faço para exibir 77:00???
       
    • By Vaga Verde
      Olá pessoal eu estou com um problema com a função que eu criei para calcular horas de permanência em um estacionamento. A conta é a seguinte, a permanência do veiculo é calculada em minutos, não em horas,  e cada minuto custa R$ 0,15, mas após o carro ficar 1h os minutos excedentes começam a valer R$ 0,07. Exemplo: o carro ficou 1h15 então o valor a ser pago é R$10,15
       
      Essa é a minha função:
      function calcValor($hora_e,$hora_s){           $hora1 = explode(":",$hora_e);           $hora2 = explode(":",$hora_s);           $acumulador1 = ($hora1[0]*3600)+($hora1[1]*60)+$hora1[2];           $acumulador2 = ($hora2[0]*3600)+($hora2[1]*60)+$hora2[2];           $resultado = $acumulador2-$acumulador1;           $valorHora = 0;           if($resultado > 3600){             $minExtra = $resultado - 3600;             return $valorHora = floor($minExtra/60);                       }           return $valor_pago = substr((($resultado/60)*0.15) + ($valorHora/0.07),0,4);         } OBS: o calculo resultado precisa ser em segundos por causa de outra função que gera a hora de saída do carro.
       
      Esse é o HTML
      <div class="container">         <form action="../CONTROL/control.php" method="POST">         <input type="hidden" name="acao" value="alterar">                      <input type="hidden" name="txt_id" value="<?php echo $dado->id; ?>">           <br>           <br>           <label>PLACA: </label>           <input type="text" name="txt_placa" value="<?php echo $dado->placa; ?>">           <br>           <br>           <label>HORA ENTRADA: </label>           <input type="text" name="txt_hentrada" value="<?php echo $dado->hora_entrada; ?>">           <br>           <br>           <label>HORA SAÍDA: </label>           <input type="text" name="txt_hsaida" value="<?php echo date('H:i:s') ?>">           <br>           <br>           <label>PERMANENCIA: </label>           <input type="text" name="txt_permanencia" value="<?php echo calcPermanencia($dado->hora_entrada, date('H:i:s')) ?>">           <br>           <br>           <label>VALOR: </label>           <input type="text" name="txt_vpago" value="<?php echo calcValor($dado->hora_entrada, date('H:i:s')) ?>">           <br>           <br>           <input type="hidden" name="txt_dentrada" value="<?php echo $dado->data_entrada; ?>">           <input type="hidden" name="txt_dsaida" value="<?php echo $dado->data_saida; ?>">                               <input type="submit" value="Gerar Saída">  Será que alguém consegue me ajudar?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.