Power BI · 2026-10-07

Fuso horário no Power Query: padronize datas de eventos

Trate fuso horário no Power Query sem deslocar eventos. Preserve o instante em UTC, derive a data operacional e valide viradas de dia e diferenças de origem.

Fuso horário no Power Query: padronize datas de eventos

Fuso horário no Power Query: padronize datas de eventos

Tratar fuso horário no Power Query exige separar o instante em que um evento ocorreu da hora exibida para uma operação. A mesma entrega pode cair em datas diferentes conforme a referência usada. Remover o fuso ou converter o texto cedo demais pode atribuir o evento ao dia errado.

Este roteiro prepara registros de eventos para comparação entre sistemas. O resultado deve preservar o instante original e produzir uma data operacional definida pelo negócio. A análise inclui offsets, que são diferenças numéricas em relação ao UTC, e limitações de horários sem informação de origem.

1. Identifique a origem do fuso horário no Power Query

Confira se a coluna informa UTC, horário local sem fuso ou data e hora com offset. UTC é o Tempo Universal Coordenado, usado como referência comum. Um texto terminado em Z indica essa referência em formatos que adotam a convenção; confirme o contrato da fonte antes de converter.

Guarde uma amostra dos valores originais e a documentação do sistema. Um campo chamado “DataEntrega” não revela sozinho como o horário foi registrado. Se a informação estiver ausente, solicite sua definição ao responsável pela fonte e marque os eventos como pendentes de normalização.

2. Preserve o valor original durante a preparação

Mantenha a coluna recebida e crie colunas derivadas para o processamento. Isso permite comparar a entrada com o resultado e identificar onde um deslocamento ocorreu. Não substitua imediatamente a origem por uma data simples, pois o horário e a diferença de fuso serão perdidos.

Separe também data de ocorrência e data de registro no sistema. Um evento pode ser informado horas depois de acontecer. Essa diferença é de processo, não de fuso. Misturar os dois problemas dificulta investigar atrasos de registro e pode produzir durações aparentemente negativas.

3. Atribua um offset somente quando ele for conhecido

Um valor do tipo datetime contém data e hora sem offset. Quando a fonte confirma a referência, use uma transformação explícita para associá-la. A função DateTime.AddZone acrescenta a informação de fuso sem deslocar a hora, conforme a referência oficial da Microsoft, consultada em 7 de outubro de 2026.

Em um exemplo hipotético, 10h registradas numa origem confirmada como UTC−3 representam 13h UTC. Atribuir UTC diretamente ao valor original criaria outro instante. Não use o offset da máquina que executa a atualização como substituto da informação do evento.

4. Converta os instantes para uma referência comum

Após obter um valor com offset, derive a referência UTC para comparar sistemas. A função DateTimeZone.ToUtc faz essa conversão, segundo a documentação da Microsoft, consultada em 7 de outubro de 2026. Preserve a coluna original e identifique claramente a coluna normalizada.

Compare eventos equivalentes de duas fontes. Num exemplo hipotético, 10h com offset −3 e 13h com offset zero representam o mesmo instante. Se a união dos registros os tratar como ocorrências diferentes apenas pelo texto, revise a chave usada para detectar duplicidades.

Para uma coluna HoraLocal do tipo datetime, uma expressão ilustrativa é DateTimeZone.ToUtc(DateTime.AddZone([HoraLocal], -3)). Ela só se aplica quando a origem confirma offset −3 para todos os registros tratados. Execute-a primeiro sobre a tabela de teste e confira o instante UTC esperado antes de aplicar à carga completa.

5. Derive a hora operacional depois da normalização

Escolha a referência usada pelo negócio para agrupar eventos. A função DateTimeZone.SwitchZone muda a representação para um offset informado, conforme a referência oficial, consultada em 7 de outubro de 2026. Use-a sobre valores que já têm componente de fuso.

Em um exemplo hipotético, um evento às 01h30 UTC corresponde a 22h30 do dia anterior numa referência de offset −3. Extraia a data operacional somente após essa conversão. Uma data derivada primeiro em UTC e depois rotulada como local manteria o dia incorreto.

6. Não confunda offset fixo com zona regional

Um offset numérico representa a diferença aplicada àquele instante. Ele não descreve sozinho todas as regras históricas de uma região. Se a operação depende de mudanças de offset ao longo do tempo, a transformação precisa receber uma referência válida para a data e a origem.

Não aplique um único offset a todo o histórico sem confirmar essa condição. Prefira o instante e o offset fornecidos pelo sistema de origem ou uma conversão feita por uma camada que conhece as regras necessárias. Registre a limitação quando o histórico não permitir recuperar a referência correta.

7. Monte um teste com viradas de dia e mês

Crie uma tabela pequena com instantes antes e depois da meia-noite na referência operacional. Inclua uma virada de mês e dois registros do mesmo instante com offsets diferentes. Para cada linha, anote o UTC esperado, a hora operacional e a data esperada.

Em um exemplo hipotético, 02h UTC no primeiro dia do mês pertence às 23h do último dia do mês anterior com offset −3. Esse caso deve entrar no fechamento operacional anterior. Um teste feito apenas ao meio-dia não revela esse tipo de erro de agrupamento.

8. Separe a data de negócio das outras datas do modelo

Use nomes como DataEntregaOperacional e InstanteEntregaUTC. O artigo de múltiplas datas no Power BI ajuda a organizar datas com papéis diferentes. A conversão de fuso resolve a referência temporal; o relacionamento do calendário resolve qual evento o filtro analisa.

Para medir duração entre etapas, compare instantes normalizados antes de remover o componente necessário ao cálculo. Para agrupar por dia, use a data operacional aprovada. Exiba essa convenção na página para que um usuário não compare um total local com um relatório de origem agrupado em UTC.

9. Valide a atualização no ambiente de destino

Execute os mesmos casos no ambiente em que a carga será usada. Evite transformações que dependem implicitamente da hora local da máquina. Registre os resultados esperados numa consulta de conferência para detectar mudanças de formato ou referência quando a fonte for atualizada.

Confira erros de conversão e valores sem fuso numa fila separada. Não substitua falhas por uma data arbitrária para conseguir carregar a tabela. Mostre quantidade de registros pendentes e período afetado, permitindo avaliar o impacto antes de usar o resultado num fechamento ou indicador de prazo.

10. Reconcilie os indicadores após a mudança

Compare totais diários antes e depois da conversão e investigue os registros que trocaram de dia. O guia de OTIF e entregas no prazo exemplifica uma análise em que a definição temporal importa. Verifique também a referência da promessa antes de compará-la com a entrega.

O modelo editável de Logística pode receber dados preparados para a operação. Esta normalização exige conhecer o formato e a referência das fontes. Preserve instantes para auditoria, derive datas operacionais explicitamente e libere a mudança somente após validar os casos que atravessam dias e períodos de fechamento.

Documente uma amostra de eventos deslocados corretamente e uma de valores rejeitados por falta de referência. A equipe deve conseguir reconstruir cada decisão usando o dado original. Isso mantém a transformação explicável mesmo quando a pessoa responsável pela integração muda.