[PQ] Criar Funções no Power Query

Neste artigo, você encontrará uma função prática que utilizo no meu dia a dia com o Power Query: a fx_timestamp_to_date. Ela transforma valores em timestamp (segundos ou milissegundos) em datas legíveis. Ideal para quem lida com APIs ou integrações com bancos de dados.

Este artigo servirá como repositório de todas as funções que utilizo no dia a dia e que facilitam alguns processos no Power Query.

As funções, no Power Query, têm a finalidade de reduzir o uso de código nas etapas aplicadas. Além disso, se você realiza a mesma etapa em todas as suas consultas, a função agiliza o processo, pois, dessa forma, não será necessário reescrever todo o código — basta clicar em “Invocar Função”.

fx_timestamp_to_date

Função criada para transformar valores em segundos ou milissegundos do timestamp em data.

O que é timestamp?

Esses números possuem vários nomes: Unix timestamps, Unix Time ou, simplesmente, timestamps (que é o nome que usaremos a partir de agora). Um timestamp basicamente representa um instante único — um ponto específico na linha do tempo — e seu valor corresponde a uma determinada quantidade de tempo decorrida a partir de um instante inicial.

Esse instante inicial (o “instante zero”) é chamado de Unix Epoch, cujo valor é 1970-01-01T00:00Z (1º de janeiro de 1970, à meia-noite, em UTC+1). O timestamp geralmente tem seu valor em segundos ou milissegundos, podendo ser um número positivo (para instantes posteriores ao Unix Epoch) ou negativo (para instantes anteriores).

Fonte: hkotsubo_programming_blog

(
    timestamp as number
)=>
let
    tamanho_timestamp = 
        // Verifica a quantidade de números (caracteres) no timestamp
        Text.Length(Text.From(timestamp, "pt-BR")),    
    
    valor_segundos = 
        /*
        A função #duration aceita segundos com até 10 números (caracteres).
        "valor_segundos" faz a verificação: se for maior que 10, remove os números (caracteres) excedentes.
        */
        if tamanho_timestamp > 10
        then timestamp / Number.Power(10, tamanho_timestamp - 10)
        else timestamp,

    Fonte = 
        /*
        Timestamps representam a quantidade de segundos após 01/01/1970.
        Por isso a função #datetime é utilizada: para somar o total de segundos ao instante inicial.
        */
        #datetime(1970,1,1,0,0,0) + 
        #duration(0,0,0,valor_segundos)

in
    Fonte

Gostou?
Salva esse link nos seus favoritos, porque de tempos em tempos atualizarei este artigo, e você poderá consultá-lo sempre que for preciso.

© 2025 Direitos Reservados - Chora {API}. Desenvolvido por Augusto Mello

1