Últimos assuntos
Transformar Campo caracter em formato HH:MM:SS
2 participantes
Página 1 de 1
Transformar Campo caracter em formato HH:MM:SS
Como transformar um campo,em caracter, que está no seguinte formato "20:15.2002" em um campo de horas formato "hh:mm:ss".
Paulo Kunath Filho- Mensagens : 5
Data de inscrição : 22/03/2012
Re: Transformar Campo caracter em formato HH:MM:SS
O ACL não possui um campo do tipo HORA para trabalhar com horas minutos e segundos. No ACL devem ser usadas funções de conversão e matemáticas, Exemplo:
CAMPO_HORA = "20:15:10" (Assumindo que se trata de 20 horas, 15 minutos e 10 segundos) VALOR_EM_SEGUNDOS = (VALUE(SPLIT(CAMPO_HORA; ":"; 1); 0) * 3600) + (VALUE(SPLIT(CAMPO_HORA; ":"; 2); 0) * 60) + (VALUE(SPLIT(CAMPO_HORA; ":"; 3); 0))
Assim as operações podem ser feitas para encontrar a diferença em segundos. Se precisar exibir o resultado em horas, você deverá fazer a operação inversa:
RESULTADO = STRING(INT(VALOR_EM_SEGUNDOS / 3600,0000) ; 2) + ":" + STRING(INT(MOD(VALOR_EM_SEGUNDOS ; 3600) / 60,0000) ; 2) + ":" + STRING(MOD(VALOR_EM_SEGUNDOS ; 60) ; 2)
Funções utilizadas:
Value - Converte texto para número.
Split - Quebra o texto por um separador (no caso o dois-pontos) e pega a sequencia (1 pega as horas, 2 pega os minutos e 3 os segundos). Int - Retorna a parte inteira da divisão. É importante observar o número de decimais para evitar arredondamento
Mod - Pega o resto da divisão.
String - Converte número para texto.
CAMPO_HORA = "20:15:10" (Assumindo que se trata de 20 horas, 15 minutos e 10 segundos) VALOR_EM_SEGUNDOS = (VALUE(SPLIT(CAMPO_HORA; ":"; 1); 0) * 3600) + (VALUE(SPLIT(CAMPO_HORA; ":"; 2); 0) * 60) + (VALUE(SPLIT(CAMPO_HORA; ":"; 3); 0))
Assim as operações podem ser feitas para encontrar a diferença em segundos. Se precisar exibir o resultado em horas, você deverá fazer a operação inversa:
RESULTADO = STRING(INT(VALOR_EM_SEGUNDOS / 3600,0000) ; 2) + ":" + STRING(INT(MOD(VALOR_EM_SEGUNDOS ; 3600) / 60,0000) ; 2) + ":" + STRING(MOD(VALOR_EM_SEGUNDOS ; 60) ; 2)
Funções utilizadas:
Value - Converte texto para número.
Split - Quebra o texto por um separador (no caso o dois-pontos) e pega a sequencia (1 pega as horas, 2 pega os minutos e 3 os segundos). Int - Retorna a parte inteira da divisão. É importante observar o número de decimais para evitar arredondamento
Mod - Pega o resto da divisão.
String - Converte número para texto.
Felipe Naibert- Mensagens : 25
Data de inscrição : 24/02/2012
Tópicos semelhantes
» Como transformar um campo que tem o formato XX.XX.X.XXX em XXX.XXX.XXX.XXX ??
» Como transformar vários registros em apenas um?
» Usar o comando Static para criar campos virtuais
» Filtro com campo "DIAS_PARC_X_CERT" entre 0 e 7 (0,1,2,3,4,5,6 e 7).
» Criar um Campo Chave
» Como transformar vários registros em apenas um?
» Usar o comando Static para criar campos virtuais
» Filtro com campo "DIAS_PARC_X_CERT" entre 0 e 7 (0,1,2,3,4,5,6 e 7).
» Criar um Campo Chave
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
Sex 13 Out - 10:25 por Felipe Naibert
» Exportar Arquivos em quantidades (blocos) fixos de linhas.
Qui 20 Ago - 12:17 por Miro
» GRUPO DE ESTUDOS AUDIT ANALYTICS
Ter 9 Jun - 9:22 por Miro
» Cálculo do número da Semana no ano
Seg 11 maio - 11:18 por Miro
» A ordem dos argumentos altera o tempo de processamento
Qui 23 Abr - 14:50 por Miro
» Como pegar dados únicos de um campo?
Seg 23 Fev - 19:33 por Fernanda
» Existe algum comando no Analyzer que eu realize as instruções do SQL?
Qua 18 Fev - 9:22 por Raphael Moita Bertolino
» Lei de Benford: How Forensic Accountants Use Benford's Law To Detect Fraud
Qua 24 Dez - 7:53 por Márcia
» Importação de PDF
Ter 9 Dez - 13:23 por Fernanda