FUNCTION CONVERSÃO VARCHAR2(HORA) PARA SEGUNDOS.

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Avatar do usuário
jime.santos
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qui, 27 Jul 2017 10:47 am
Localização: São Paulo, Barueri, São Paulo
Contato:

PREZADOS, #BOMDIA, #BOATARDE, #BOANOITE.

ORACLE(xe) plataforma (plsql).

PRECISO CRIAR UMA FUNCTION A PARTIR DO SELECT ABAIXO, PARA CONVERTER TEXTO EM NUMBER SEGUE EXEMPLO:

COLUNA HORA 01:20:16 TYPE VARCHAR2(8) PRECISO CONVERTER (HORA) EM SEGUNDOS.

A CONVERSÃO EFETUEI COM SUBSTR, AGORA PRECISO CRIAR UMA FUNCTION QUE ESTOU ALGUNS DIAS TENTANDO MAS NÃO OBTIVE SUCESSO

Selecionar tudo

select
 Hora + minuto + segundo as RESULTADOEMSEGUNDOS from (
 
  select substr('01:20:16', 1, 2) * 3600 as Hora,
         substr('01:20:16', 4, 2) * 60 as minuto,
         substr('01:20:16', 7, 2) as segundo
    from dual)

Selecionar tudo

RESULTADOEMSEGUNDOS
4816
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Poderia ser algo assim:

Selecionar tudo

create function segundos ( vhora varchar2 ) return  number
is
  qtd_segundos number:=0;
begin

  qtd_segundos := substr( vhora, 1, 2) * 3600;
  qtd_segundos := qtd_segundos + substr(vhora, 4, 2) * 60;
  qtd_segundos := qtd_segundos + substr(vhora, 7, 2);

  return qtd_segundos;
end;
Veja se é isso que você precisa.

Selecionar tudo

SQL> select segundos('01:20:16') from dual
  2  /

SEGUNDOS('01:20:16')
--------------------
                4816

SQL> 
Renato Menezes Viana
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 128
Registrado em: Sáb, 18 Nov 2006 11:51 am
Localização: Rio de Janeiro - RJ

Jime,

Veja o tópico abaixo, onde você pode padronizar TODOS os valores possíveis:

http://glufke.net/oracle/viewtopic.php? ... 992#p38992

Abs, Renato Viana
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes