Thiago Zavaschi R2 www.zavaschi.com

17Jun/100

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:

image

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.

image

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.

image

 

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