[firebase-br] Calculo entre campos TIME e DECIMAL.

José Mauricio barbisan Zottis zottissistemas em gmail.com
Ter Fev 18 18:56:03 -03 2020


Eu faria assim:
Faria o calculo apenas para saber quantos segundos levaria para fazer o
trabalho
(Caso ache necessário, pode desenvolver uma procedure com a função que
passei)

SELECT (IT.QTD * EA.TEMPO_PROD as TEMPO
FROM........

depois com essa função(Delphi) converto para Horas

Function MinutosParaHora(Minutos:integer): string;//Retorna no formato
"00:00"
   var aux, hr   : integer;
       aux_str, hr_str : string;
Begin

   hr            :=   Trunc(minutos / 60);
   aux           :=   minutos mod 60;

       if (aux  >  60) Then // se soma de minutos for > 60...
         Begin // somamos + 1 hora e subtraimos 60 do total de minutos
           hr       :=   hr + 1;
           aux      :=   aux - 60;
         End;

       if (aux  =  60) Then // se for = a 60...
         Begin // somamos a hora e zeramos minutos
           hr      :=   hr+1;
           aux      :=   0;
         End;

       if (aux  >= 0) and (aux  <= 9) Then
          aux_str    :=   '0'+inttostr(aux)
       else
          aux_str  :=  inttostr(aux);

       if (hr>=0) and (hr<=9) Then
          hr_str  :=  '0'+inttostr(hr)
       else
     hr_str  :=   inttostr(hr);
     result  :=   hr_str+':'+aux_str;

End;


Em ter., 18 de fev. de 2020 às 16:25, Nícolas Concianci <
ti em telassantoantonio.com.br> escreveu:

> Boa tarde José, usando sua lógica fiz algo parecido, só estou com
> dificuldades para converter de voltar à campo tempo, consegue dar mais uma
> luz?
> Até então o sql está assim.
>
> SELECT (IT.QTD*(cast(EA.TEMPO_PROD as time)- cast('00:00' as time))) as
> TEMPO
> FROM
>
> EST_ADICIONAIS EA
> INNER JOIN ESTOQUE E ON EA.CODIGO = E.CODIGO
> INNER JOIN ITEM_PEDV IT ON IT.CODIGO = E.CODIGO
> WHERE
>
> EA.LOTE  ''
> ---
> IT.QTD = 61,8, EA.TEMPO_PROD = '00:01:35' mas no sql ele está sendo
> entendido como 95
> Resultado= 5871.
> Atenciosamente,
>
> Nícolas C.
> Em Ter, Fev 18, 2020 às 13:46, José Mauricio barbisan Zottis  escreveu:
> Eu faria o calculo todo ele em segundos, e armazenaria também o tempo que
> leva para produzir em Segundos, ou seja o campo de tempo seria um integer
> aí você apresenta o resultado convertendo os segundos em tempo.
>
> Em ter., 18 de fev. de 2020 às 12:23, Nícolas Concianci <
> ti em telassantoantonio.com.br (mailto:ti em telassantoantonio.com.br)>
> escreveu:
>
> Não tinha postado pois estou tentando outros comandos para o cálculo,
> então não tenho 1 select fixo como base mas a primeira coisa que tentei foi
> isso.
> SELECT (EA.TEMPO_PROD * IT.QTD)
> FROM
> EST_ADICIONAIS EA
> INNER JOIN ESTOQUE E ON EA.CODIGO = E.CODIGO
> INNER JOIN ITEM_PEDV IT ON IT.CODIGO = E.CODIGO
> WHERE
> EA.LOTE  ''
> Atenciosamente,
> Nícolas C.
> Em Ter, Fev 18, 2020 às 12:15, José Mauricio barbisan Zottis  escreveu:
> bom dia, para que possam te ajudar, sempre poste o calculo que esta
> fazendo.
>
> Em ter., 18 de fev. de 2020 às 11:58, Nícolas Concianci <
> ti em telassantoantonio.com.br (mailto:ti em telassantoantonio.com.br) (mailto:
> ti em telassantoantonio.com.br (mailto:ti em telassantoantonio.com.br))>
> escreveu:
>
> Boa tarde a todos, estou em um impasse aqui onde necessito fazer um
> calculo de um campo TIME onde fica armazenado o tempo para produzir o item,
> e o campo DECIMAL que armazena a quantidade solicitada pelo cliente.
> Sempre ocorre o erro de Invalid data type for division in dialect 3.
> Creio que seja algo simples que não estou enxergando, se puderem me dar
> algum norte irei agradecer muito.
> Atenciosamente,
>
> Nícolas C.
> ______________________________________________
> FireBase-BR (www.firebase.com.br (http://www.firebase.com.br) (
> http://www.firebase.com.br (http://www.firebase.com.br))) -
> Hospedado em www.locador.com.br (http://www.locador.com.br) (
> http://www.locador.com.br (http://www.locador.com.br))
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107 (
> http://www.firebase.com.br/fb/artigo.php?id=1107) (
> http://www.firebase.com.br/fb/artigo.php?id=1107 (
> http://www.firebase.com.br/fb/artigo.php?id=1107))
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html (
> http://www.firebase.com.br/pesquisa_lista.html) (
> http://www.firebase.com.br/pesquisa_lista.html (
> http://www.firebase.com.br/pesquisa_lista.html))
>
> --
> ______________________________________________
> FireBase-BR (www.firebase.com.br (http://www.firebase.com.br) (
> http://www.firebase.com.br (http://www.firebase.com.br))) -
> Hospedado em www.locador.com.br (http://www.locador.com.br) (
> http://www.locador.com.br (http://www.locador.com.br))
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107 (
> http://www.firebase.com.br/fb/artigo.php?id=1107) (
> http://www.firebase.com.br/fb/artigo.php?id=1107 (
> http://www.firebase.com.br/fb/artigo.php?id=1107))
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html (
> http://www.firebase.com.br/pesquisa_lista.html) (
> http://www.firebase.com.br/pesquisa_lista.html (
> http://www.firebase.com.br/pesquisa_lista.html))
> ______________________________________________
> FireBase-BR (www.firebase.com.br (http://www.firebase.com.br)) -
> Hospedado em www.locador.com.br (http://www.locador.com.br)
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107 (
> http://www.firebase.com.br/fb/artigo.php?id=1107)
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html (
> http://www.firebase.com.br/pesquisa_lista.html)
>
> --
> ______________________________________________
> FireBase-BR (www.firebase.com.br (http://www.firebase.com.br)) -
> Hospedado em www.locador.com.br (http://www.locador.com.br)
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107 (
> http://www.firebase.com.br/fb/artigo.php?id=1107)
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html (
> http://www.firebase.com.br/pesquisa_lista.html)
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>


--



Mais detalhes sobre a lista de discussão lista