PowerPivot – DAX – Função DATE
Olá pessoal,
Temos disponíveis entre as DAX uma série de funções para análise de tempo e datas (também conhecidas como time intelligent functions, que abordarei aos poucos).
Hoje venho relatar a função DATE e as suas peculiaridades (ao menos nesta versão do PowerPivot, também conhecida como v1), mais informações podem ser vistas no FAQ: http://powerpivotfaq.com).
A primeira função que devemos nos atentar é a função DATE. O seu objetivo é simples: retornar em formato de data sobre os inteiros passados como parâmetros.
Sintaxe: DATE(ano, mês, dia).
Exemplo 1: Retornando uma data simples.
=DATE(2010, 06, 17).
O retorno será dia 17, mês junho, ano 2010. Simples não? Lembrando que os parâmetros podem vir de resultados de outras expressões DAX (por exemplo de outra coluna). Veja abaixo:
Exemplo 2:
Apesar de simples, devemos nos atentar para pequenos detalhes que podem nos levar a problemas nas nossas manipulações de datas.
O que você acha que retorna a seguinte expressão DAX: =DATE(08, 06, 01)?
Se voc6e respondeu dia 01 de junho de 2008 errou! Na realidade representa 01/06/1908! Pois anos até 1899 são somados ao valor 1900. 1900 + 08 = 1908, entendeu?
Se desejar 2008, é necessário que o valor passado seja 2008. Mas como resolver isto se a minha coluna veio importada de uma fonte que trata 08 como 2008? Simples: Crie uma coluna computada que tranforme de 08 para 2008.
A imagem abaixo demonstra a questão do valor menor que 1900 receba uma soma de 1900 para o cálculo do ano. Anos de 1900 para cima não recebem o acréscimo.
Atente que 1789 foi para o ano 3689, e 1900/1995 permaneceram os mesmos.
Exemplo 3: Manipulando os dias (e meses).
O terceiro parâmetro é a referência ao dia.
Atenção pois há peculiaridades também: Se informar um valor de dia maior que o que o mês pode comportar (dia 31 para o mês de fevereiro, ou passar o valor 45 como dia), esse valor será somado.
Por exemplo: se informar 45 em um mês que deveria ter 30 dias apenas, será somado mais 15 dias e cairá na metade do mês seguinte.
De maneira similar, se informar uma data negativa será decrescido o valor informado.
Veja a imagem abaixo com alguns exemplos.
PS: O mesmo comportamento é aplicado ao parâmetro com o número do mês informado.
Bom pessoal era isso o que eu queria mostrar hoje. É mais para vocês não subestimarem as funções simples, pois se não conhecermos os detalhes teremos resultados muitas vezes inesperados e difíceis de rastrear.
Este artigo é parte de uma série de artigos sobre PowerPivot e DAX. Confira os outros artigos sobre PowerPivot no link: http://zavaschi.com/index.php/tag/powerpivot/
Abraços,
Thiago Zavaschi