DAX · UDF
Time.TotalTimeToStr
Converte uma duração em dias em texto HH:MM:SS, sem limite de 24 horas.
Categoria: Data e horaTipo: UDFVersão: v1.1.0Fonte: Paulo André Jesus — OfficeTuningAtualizado em: 25/09/2026
Documentação completa na Function Library →Sintaxe
Time.TotalTimeToStr ( pTimeField )Argumentos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| pTimeField | DATETIME VAL | Sim | Duração em dias (1 = 24 h) ou um horário. |
Retorno
Texto
Código completo
DEFINE
/// Converte uma duração (fração de dia) em texto HH:MM:SS, sem limite de 24 horas.
/// @param {DATETIME} pTimeField - Duração em dias (1 = 24 h), ou um horário.
/// @returns Texto "HH:MM:SS", ou BLANK.
FUNCTION Time.TotalTimeToStr =
( pTimeField : DATETIME VAL ) =>
-- Arredonda para segundos inteiros antes de separar horas, minutos e segundos
VAR vSegundos = ROUND ( pTimeField * 86400, 0 )
VAR vHoras = INT ( vSegundos / 3600 )
VAR vMinutos = INT ( MOD ( vSegundos, 3600 ) / 60 )
VAR vSeg = MOD ( vSegundos, 60 )
RETURN
IF (
ISBLANK ( pTimeField ),
BLANK (),
FORMAT ( vHoras, "00" ) & ":" & FORMAT ( vMinutos, "00" ) & ":" & FORMAT ( vSeg, "00" )
)
EVALUATE
{ Time.TotalTimeToStr ( 1.25 ), Time.TotalTimeToStr ( TIME ( 1, 30, 15 ) ) } // "30:00:00" · "01:30:15"Exemplos
Tempo Total = Time.TotalTimeToStr ( SUM ( 'TabFatAtendimento'[Duração] ) )
EVALUATE { Time.TotalTimeToStr ( 1.25 ) }
// "30:00:00"Dicas e observações
💡 Arredonda para segundos inteiros antes de separar horas, minutos e segundos: evita 00:59:59 em vez de 01:00:00. ⚠️ O resultado é texto: não soma nem ordena como número. Para ordenar, use a duração original.