[firebase-br] RES: RES: RES: Converter segundos em HH:MM:SS

Wilson Mota - GMail wmotasjrp em gmail.com
Ter Ago 10 10:06:10 -03 2010


Ola Zottis, obrigado pela atenção.
Estou debugando a SP e tem uma parte no código
"Hrs =  cast(secs / 3600 as integer);"  que traz o valor arredondado para 
cima.

Substituindo o teu código pelo select você pode ver que traz o 49 quando 
teria que ser 48 , teria
que pegar a parte inteira da divisão.

select cast(175523 / 3600 as integer)
from rdb$database

[]s

Wilson
----- Original Message ----- 
From: "Zottis" <bzottis em ig.com.br>
To: "'FireBase'" <lista em firebase.com.br>
Sent: Tuesday, August 10, 2010 8:29 AM
Subject: [firebase-br] RES: RES: RES: Converter segundos em HH:MM:SS


Oi Wilson, ontem mandei uma procedure que fiz, mas como fiz correndo não me
detalhei muito, acho que está esta mais completa, pelo menos não achei erros
nos testes aqui.
Espero que ajude.

SET TERM ^ ;

CREATE OR ALTER PROCEDURE SP_SEGSTOHMS (
    secs bigint)
returns (
    hora varchar(10))
as
declare variable hrs integer;
declare variable minut integer;
declare variable hr_str varchar(2);
declare variable min_str varchar(2);
declare variable seg_str varchar(2);
begin

      if (secs > 0) then
         begin
          Hrs =  cast(secs / 3600 as integer);
            if (hrs < 10) then
              begin
                hr_str = '0' || HRS;
              end else
            if (hrs >= 10) then
              begin
                hr_str = HRS;
              end

          secs  = secs -(hrs * 3600);

          minut =  secs / 60;

                if (minut = 0) then
                  bEGIN
                    min_str = '00';
                    seg_str = '00';
                  END ELSE
                if (minut between 1 and 9) then
                  bEGIN
                    min_str = '0' || minut;
                    seg_str = '00';
                  END ELSE
                if (minut between 11 and 59) then
                  bEGIN
                    min_str = minut;
                    seg_str = '00';
                  END

                  secs  = secs -(minut * 60);

                    if (SECS < 10) then
                      bEGIN
                       seg_str = '0' || SECS;
                      END ELSE
                    if (SECS > 10) then
                      bEGIN
                       seg_str = SECS;
                      END

          HORA = hr_str || ':' || min_str || ':' || seg_str;
         end else

         HORA = '00:00:00';
  suspend;
end^

SET TERM ; ^


______________________________________________
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://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista