1
resposta

Dúvida comparação de dias com dateadd

Por volta do minuto 3:50 da aula, é dado o exemplo de comparação de horas entre o dia 1 de abril com o dia 1 de março e assim por diante. Fiquei curioso para saber o comportamento no caso de comparar o dado do dia 31 que existe em março mas não em abril. Neste caso, pelo que testei, ele não faz a comparação porque abril termina no dia 30.

Exemplo da comparação. Abril só vai até o mês 30.
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Registro que criei para 31 de março:
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Tenho duas dúvidas:
1-Tecnicamente, como isso poderia ser feito;
2-Esse tipo análise (dia do mês atual vs dia do mês anterior), é comum no dia-a-dia de uma empresa, entidade pública?

Obrigado!

1 resposta

Ei, Vinicius! Tudo bem?

Agradeço por aguardar o nosso retorno.

O DATEADD faz um deslocamento de datas, mas só retorna os valores se a data resultante existir no calendário, como a sua observação. Então, ao comparar 31 de março com 31 de abril, essa data não existe, o DAX não encontra a correspondência, retornando vazio.

Nesse caso, podemos pensar em algumas abordagens:

  • Comparar períodos agregados, como total do mês vs mês anterior (em vez de dia a dia).
  • Comparar até o último dia disponível do mês anterior. Por exemplo: 30 de abril e 31 de março.
  • Criar uma lógica condicional usando funções como a EOMONTH, para ajustar automaticamente quando o dia não existe no mês comparado.
  • Em análises mais avançadas, usar uma tabela calendário bem estruturada e trabalhar com flags como último dia do mês.

O ajuste precisa ser pensado com base na regra de negócio sempre.

Sobre esse tipo de análise no cotidiano, pode até parecer, mas não é comum na prática. O mais recorrente é vermos comparação de mês atual vs mês anterior, acumulado até hoje vs acumulado até o mesmo dia do mês anterior, média diária do mês atual vs média atual do mês anterior.

Para saber mais

Espero ter ajudado e conte sempre com o nosso auxílio aqui no fórum.

Até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado