Pular para o conteúdo
Visualizando 8 posts - 1 até 8 (de 8 do total)
  • Autor
    Posts
  • #95745
    VINI85
    Participante

      Bom dia!
      Como faço para converter um campo String para hora?

      Abs.

      #95750
      Marcos Braga
      Participante

        Olá VINI85,

        Não lembro se existe somente um formato hora, existe o formato data/hora, geralmente andam juntos (se eu estiver errado, o grupo pode corrigir isso).

        Observe o exemplo:

        SQL> alter session set nls_date_format = 'hh:mi:ss';

        Sessao alterada.

        SQL> select to_date('12:00', 'hh:mi') from dual;

        TO_DATE(

        12:00:00

        Se não for isso, favor nos dê mais detalhes.

        []s
        Braga[/code]

        #95752
        VINI85
        Participante

          [quote=”braga”:2226is72]Olá VINI85,

          Não lembro se existe somente um formato hora, existe o formato data/hora, geralmente andam juntos (se eu estiver errado, o grupo pode corrigir isso).

          Observe o exemplo:

          SQL> alter session set nls_date_format = 'hh:mi:ss';

          Sessao alterada.

          SQL> select to_date('12:00', 'hh:mi') from dual;

          TO_DATE(

          12:00:00

          Se não for isso, favor nos dê mais detalhes.

          []s
          Braga[/code][/quote]

          Entao eu tenho um campo REF COM O VALOR 720, preciso converser esse valor para hora, no caso “12:00” e se for quebrado exemplo: 733 12:15.

          #95756
          Marcos Braga
          Participante

            O que passei foi uma formatação simples de um campo (string) que contém um horário, talvez não no formato de hora, mas contém um horário, tipo 1200, 173056, que convertendo ficaria 12:00, 17:30:56 respectivamente.

            O campo que você propôs contém um valor 720, eu pergunto? o que esse 720 significa? teria que fazer um cálculo para convertê-lo em horas?

            Quanto a quebra “733 12:15”, esse é o valor que contém no campo? O valor 12:15 é o horário, mas o 733, o que significa?

            Com essas informações chegaremos há um consenso.

            []s
            Braga

            #95757
            VINI85
            Participante

              [quote=”braga”:1nhn54wq]O que passei foi uma formatação simples de um campo (string) que contém um horário, talvez não no formato de hora, mas contém um horário, tipo 1200, 173056, que convertendo ficaria 12:00, 17:30:56 respectivamente.

              O campo que você propôs contém um valor 720, eu pergunto? o que esse 720 significa? teria que fazer um cálculo para convertê-lo em horas?

              Quanto a quebra “733 12:15”, esse é o valor que contém no campo? O valor 12:15 é o horário, mas o 733, o que significa?

              Com essas informações chegaremos há um consenso.

              []s
              Braga[/quote]

              Então 12:00 são 730 minutos.

              #95760
              Marcos Braga
              Participante

                Cara…, dei uma pesquisada e não achei uma solução simples para converter minutos em hora:minuto.

                Bom…, pense assim: esse tipo de conversão é meramente ilustrativa, uma hora que está guardada em uma string é formatada para parecer um horário (e até pode-se trabalhar com esse horário); porém um campo que contém minutos deverá ser convertido antes de transformá-lo em horário.

                Uma solução que achei para converter em horas é:

                SQL> alter session set nls_date_format = 'hh24:mi:ss';

                Sessao alterada.

                SQL> select to_date(round(920/60), 'hh24') data from dual;

                DATA

                15:00:00

                1 linha selecionada.

                Não se se resolve o seu problema, mas dá uma idéia do caminho a seguir.

                []s
                Braga

                #95787
                burga
                Participante

                  Seria algo assim?

                  select
                  trunc(720/60) ||
                  ':' ||
                  LPAD(MOD(720,60),2,'0')
                  from dual;

                  Se quiser retorno de tipo date, é só converter a saída com a função to_date, como o braga fez nos posts anteriores… Mas isso só com horas menores do que 24.

                  #95805
                  VINI85
                  Participante

                    [quote=”burga”:11lsvhbs]Seria algo assim?

                    select
                    trunc(720/60) ||
                    ':' ||
                    LPAD(MOD(720,60),2,'0')
                    from dual;

                    Se quiser retorno de tipo date, é só converter a saída com a função to_date, como o braga fez nos posts anteriores… Mas isso só com horas menores do que 24.[/quote]

                    Valeu pela ajuda galera!

                  Visualizando 8 posts - 1 até 8 (de 8 do total)
                  • Você deve fazer login para responder a este tópico.