DATESINPERIOD

Retorna uma tabela que contém uma coluna de datas que começa com uma data de início especificada e continua até o número e o tipo de intervalo de datas especificados.

Essa função é adequada para ser transmitida como um filtro para a função CALCULATE. Use-a para filtrar uma expressão por intervalos de datas padrão, como dias, meses, trimestres ou anos.

Sintaxe

DATESINPERIOD(<dates>, <start_date>, <number_of_intervals>, <interval>)

Parâmetros

Termo Definição
datas Uma coluna de data.
start_date Uma expressão de data.
number_of_intervals Um inteiro que especifica o número de intervalos a serem adicionados às datas ou subtraídos delas.
intervalo O intervalo pelo qual as datas serão deslocadas. O valor do intervalo pode ser um dos seguintes: DAY, MONTH, QUARTER e YEAR

Retornar valor

Uma tabela que contém uma única coluna de valores de data.

Comentários

  • No caso de uso mais comum, dates é uma referência à coluna de data de uma tabela de data marcada.

  • Se o número especificado para number_of_intervals for positivo, as datas serão avançadas no tempo; se o número for negativo, as datas serão retrocedidas no tempo.

  • O parâmetro interval é uma enumeração. Os valores válidos são DAY, MONTH, QUARTER e YEAR. Como ele é uma enumeração, os valores não são transmitidos como cadeias de caracteres. Portanto, não coloque-os entre aspas.

  • A tabela retornada só pode conter datas armazenadas na coluna dates. Então, por exemplo, se a coluna dates começar a partir de 1º de julho de 2017 e o valor de start_date for 1º de julho de 2016, a tabela retornada começará a partir de 1º de julho de 2017.

  • Não há suporte para a função ser usada no modo DirectQuery quando usada em regras RLS (segurança em nível de linha) ou colunas calculadas.

Exemplo

A definição de medida da tabela Sales a seguir usa a função DATESINPERIOD para calcular a receita do PY (ano anterior).

Observe que a fórmula usa a função MAX. Essa função retorna a data mais recente que está no contexto de filtro. Portanto, a função DATESINPERIOD retorna uma tabela de datas começando a partir da data mais recente do último ano.

Os exemplos deste artigo podem ser usados com o modelo de exemplo do Power BI Desktop do Adventure Works DW 2020. Para obter o modelo, confira Modelo de exemplo DAX.

Revenue PY =
CALCULATE(
    SUM(Sales[Sales Amount]),
    DATESINPERIOD(
        'Date'[Date],
        MAX('Date'[Date]),
        -1,
        YEAR
    )
)

Considere que o relatório é filtrado pelo mês de junho de 2020. A função MAX retorna 30 de junho de 2020. A função DATESINPERIOD retorna um intervalo de datas de 1º de julho de 2019 até 30 de junho de 2020. É um ano de valores de data que começam a partir de 30 de junho de 2020 no último ano.

Funções de inteligência de dados temporais (DAX)
Funções de data e hora (DAX)
Função DATESBETWEEN (DAX)