Поделиться через


DATESBETWEEN

применяется:вычисляемый столбецвычисляемой таблицыизмерениевизуального вычисления

Заметка

Эта функция не рекомендуется использовать в визуальных вычислениях, так как, скорее всего, возвращает бессмысленные результаты.

Для входных данных столбца даты возвращает таблицу, содержащую столбец дат, начинающихся с указанной даты начала и продолжающейся до указанной даты окончания.

Для входных данных календаря возвращает таблицу, которая начинается с указанной даты начала и продолжается до указанной даты окончания. Таблица содержит все основные помеченные столбцы и все связанные со временем столбцы.

Эта функция подходит для передачи в качестве фильтра в функцию CALCULATE. Используйте его для фильтрации выражения по пользовательскому диапазону дат.

Заметка

Если вы работаете со стандартными интервалами дат, такими как дни, месяцы, кварталы или годы, рекомендуется использовать более подходящую функцию DATESINPERIOD.

Синтаксис

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

Параметры

Срок Определение
dates or calendar Столбец, содержащий даты или ссылку на календарь
StartDate Выражение даты и дня. Если используется синтаксис календаря, используйте тот же тип данных, что и основной столбец, помеченный категорией Day.
EndDate Выражение даты и дня. Если используется синтаксис календаря, используйте тот же тип данных, что и основной столбец, помеченный категорией Day.

Возвращаемое значение

Для ввода столбца даты таблица, содержащая один столбец значений даты.
Для входных данных календаря таблица, содержащая все основные помеченные столбцы и все связанные со временем столбцы.

Замечания

  • В наиболее распространенном случае использования dates является ссылкой на столбец даты помеченной таблицы дат.

  • Если StartDateBLANK, StartDate будет самым ранним значением в столбце dates. Для календаря оно будет первым значением в столбце, который помечен как день.

  • Если EndDateBLANK, EndDate будет последним значением в столбце dates. Для календаря это будет последнее значение в столбце, помеченном как день.

  • Даты, используемые в качестве StartDate и EndDate, включены включительно. Например, если значение StartDate равно 1 июля 2019 г., то эта дата будет включена в возвращаемую таблицу (если дата существует в столбце dates).

  • Для входных данных столбца даты возвращаемая таблица может содержать только даты, хранящиеся в столбце Dates . Например, если столбец Dates начинается с 1 июля 2017 года, а значение StartDate — 1 июля 2016 года, возвращаемая таблица начнется с 1 июля 2017 года.

  • Для входных данных календаря, если входная дата не найдена в столбце помеченного дня, она будет рассматриваться как BLANK и, следовательно, будет использоваться первое/последнее значение.

  • Для входных данных календаря используйте тот же тип данных и формат, что и столбец помеченного дня для даты начала и окончания. Например, если столбец использует формат YYYY-Sn-Qn-Mnn-Wnn-Dnn (например, "2014-S2-Q4-M11-W45-D03"), дата начала и дата окончания должны соответствовать тому же формату (например, "2015-S2-Q4-M11-W45-D03"). В противном случае поведение не определено.

  • Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).

Пример

В следующем определении таблицы sales используется функция DATESBETWEEN для создания вычисления актуального (LTD). Срок жизни представляет собой накопление меры с течением времени с самого начала времени.

Обратите внимание, что формула использует функцию MAX. Эта функция возвращает последнюю дату, которая находится в контексте фильтра. Таким образом, функция DATESBETWEEN возвращает таблицу дат, начиная с самой ранней даты до последней даты.

Примеры в этой статье можно использовать с примером модели Adventure Works DW 2020 Power BI Desktop. Сведения о получении модели см. в разделе DAXпримера модели.

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

Рассмотрим, что самая ранняя дата, хранящуюся в таблице даты 1 июля 2017 года. Таким образом, когда отчет фильтрует меру на месяц 2020 года, функция DATESBETWEEN возвращает диапазон дат с 1 июля 2017 г. до 30 июня 2020 г.

Пример для аналитики времени на основе календаря

В следующем определении таблицы sales используется функция DATESBETWEEN для создания вычисления актуального (LTD). Срок жизни представляет собой накопление меры с течением времени с самого начала времени.

Обратите внимание, что формула использует функцию MAX. Эта функция возвращает максимальный ключ даты, который находится в контексте фильтра. Таким образом, функция DATESBETWEEN возвращает таблицу дат, начиная с самой ранней даты до последней даты. DateKey используется в качестве примера для отображения того, что категория "Day" может быть помечена столбцом, не типизированным датой

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