- Este tópico contém 7 respostas, 3 vozes e foi atualizado pela última vez 15 anos, 6 meses atrás por
VINI85.
-
AutorPosts
-
30 de agosto de 2010 às 4:42 pm #95745
VINI85
ParticipanteBom dia!
Como faço para converter um campo String para hora?Abs.
30 de agosto de 2010 às 5:07 pm #95750Marcos Braga
ParticipanteOlá 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]30 de agosto de 2010 às 5:19 pm #95752VINI85
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.
30 de agosto de 2010 às 5:58 pm #95756Marcos Braga
ParticipanteO 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
Braga30 de agosto de 2010 às 6:13 pm #95757VINI85
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.
30 de agosto de 2010 às 7:53 pm #95760Marcos Braga
ParticipanteCara…, 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
Braga31 de agosto de 2010 às 6:05 am #95787burga
ParticipanteSeria 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.
31 de agosto de 2010 às 5:56 pm #95805VINI85
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!
-
AutorPosts
- Você deve fazer login para responder a este tópico.