[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