DATESBETWEEN

Aplica-se a:Coluna calculadaTabela calculadaMedidaCálculo visual

Observação

Esta função é desencorajada para uso em cálculos visuais pois provavelmente retorna resultados sem sentido.

Para entrada de coluna de data, retorna uma tabela que contém uma coluna de datas que começa com uma data de início especificada e continua até uma data de término especificada.

Para entrada de calendário, retorna uma tabela que começa com uma data de início especificada e continua até uma data de término especificada. A tabela contém todas as colunas marcadas primárias e todas as colunas relacionadas ao tempo.

Esta função é adequada para passar como um filtro para a função CALCULATE. Use-o para filtrar uma expressão por um intervalo de datas personalizado.

Observação

Se estiver a trabalhar com intervalos de data padrão, como dias, meses, trimestres ou anos, use a função mais adequada DATESINPERIOD .

Sintaxe

DATESBETWEEN(<dates or calendar>, <StartDate>, <EndDate>)

Parâmetros

Vigência Definição
dates or calendar Uma coluna que contém datas ou uma referência de calendário
StartDate Uma expressão de data/dia. Se usares sintaxe do calendário, usa o mesmo tipo de dado da coluna principal marcada para a categoria Dia.
EndDate Uma expressão de data/dia. Se usares sintaxe do calendário, usa o mesmo tipo de dado da coluna principal marcada para a categoria Dia.

Valor de retorno

Para entrada de coluna de data, uma tabela contendo uma única coluna de valores de data.
Para entrada de calendário, uma tabela que contém todas as colunas marcadas primárias e todas as colunas relacionadas ao tempo.

Comentários

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

  • Se StartDate for , então StartDate é o valor mais antigo na dates colunaBLANK. Para o calendário, é o primeiro valor numa coluna que está marcado como dia.

  • Se EndDate for , então EndDate é o valor mais recente na dates colunaBLANK. Para o calendário, é o último valor numa coluna que está marcado como dia.

  • As datas utilizadas como StartDate e EndDate estão incluídas. Assim, por exemplo, se o StartDate valor for 1 de julho de 2019, essa data é incluída na tabela de retorno (desde que a data exista na dates coluna).

  • Para entrada de coluna de data, a tabela retornada só pode conter datas armazenadas na Dates coluna. Por exemplo, se a Dates coluna começar a 1 de julho de 2017 e o StartDate valor for a 1 de julho de 2016, a tabela devolvida começa a 1 de julho de 2017.

  • Para a entrada do calendário, se a data de entrada não estiver na coluna do dia marcado, é tratada como BLANK, e o primeiro ou último valor é usado.

  • Para a entrada de calendário, use o mesmo tipo de dados e formato que a coluna de dia marcado para a data de início e a data de término. Por exemplo, se a coluna usar o formato AAAA-Sn-Qn-Mnn-Wnn-Dnn (por exemplo, "2014-S2-Q4-M11-W45-D03"), a data de início e a data de término devem seguir o mesmo formato (por exemplo, "2015-S2-Q4-M11-W45-D03"). Caso contrário, o comportamento é indefinido.

  • Esta função não é suportada para utilização no modo DirectQuery quando utilizada em colunas calculadas ou regras de segurança ao nível da linha (RLS).

Exemplo

A seguinte definição de medida de tabela de de vendas usa a função para produzir um cálculo de de vida até a data (LTD). A vida até à data representa a acumulação de uma medida ao longo do tempo desde o início dos tempos.

A fórmula utiliza a MAX função. Esta função retorna a data mais recente que está no contexto do filtro. Assim, a função DATESBETWEEN retorna uma tabela de datas que começam desde a data mais antiga até a data mais recente que está sendo relatada.

Exemplos neste artigo podem ser usados com o modelo de exemplo do Power BI Desktop do Adventure Works DW 2020. Para obter o modelo, consulte DAX exemplo de modelo.

Customers LTD =
CALCULATE (
    DISTINCTCOUNT ( Sales[CustomerKey] ),
    DATESBETWEEN ( 'Date'[Date], BLANK (), MAX ( 'Date'[Date] ) )
)

Considere que a data mais antiga armazenada na tabela Data é 1º de julho de 2017. Assim, quando um relatório filtra a medida até o mês de junho de 2020, a função DATESBETWEEN retorna um intervalo de datas de 1º de julho de 2017 a 30 de junho de 2020.

Exemplo de inteligência de tempo baseada em calendário

A seguinte definição de medida de tabela de de vendas usa a função para produzir um cálculo de de vida até a data (LTD). A vida até à data representa a acumulação de uma medida ao longo do tempo desde o início dos tempos.

A fórmula utiliza a MAX função. Essa função retorna a tecla de data máxima que está no contexto do filtro. Assim, a função DATESBETWEEN retorna uma tabela de datas que começam desde a data mais antiga até a data mais recente que está sendo relatada. Usamos o DateKey como exemplo para mostrar que a categoria "Dia" pode ser marcada com uma coluna que não é tipada por data.

Customers LTD =
CALCULATE (
    DISTINCTCOUNT ( Sales[CustomerKey] ),
    DATESBETWEEN ( FiscalCalendar, BLANK (), MAX ( 'Date'[DateKey] ) )
)