dax количество дней между датами
DATESBETWEEN
Возвращает таблицу, содержащую столбец дат, который начинается с указанной даты начала и продолжается до указанной даты окончания.
Эта функция подходит для передачи в качестве фильтра функции CALCULATE. Используйте его для фильтрации выражения по настраиваемому диапазону дат.
Если вы работаете со стандартными интервалами дат, такими как дни, месяцы, кварталы или годы, рекомендуется использовать более подходящую функцию DATESINPERIOD.
Синтаксис
Параметры
Термин | Определение |
---|---|
dates | Столбец даты. |
start_date | Выражение даты. |
end_date | Выражение даты. |
Возвращаемое значение
Таблица, содержащая один столбец значений даты.
Remarks
В наиболее распространенном варианте использования dates является ссылкой на столбец дат помеченной таблицы дат.
Если значение start_date равно BLANK, start_date будет самым ранним значением в столбце dates.
Если значение end_date равно BLANK, end_date будет самым поздним значением в столбце dates.
Даты, используемые в параметрах start_date и end_date, являются включающими. Например, если значение start_date равно 1 июля 2019 г, то эта дата будет включена в возвращаемую таблицу (предоставляя дату в столбце dates).
Возвращаемая таблица может содержать только даты, хранящиеся в столбце dates. Например, если столбец dates начинается с 1 июля 2017 г., а значение start_date равно 1 июля 2016 г., то возвращаемая таблица будет начинаться с 1 июля 2017 г.
Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).
Пример
В следующем определении меры таблицы Sales используется функция DATESBETWEEN для создания вычисления срока действия (LTD). Срок действия представляет накопление меры с течением времени с момента самого начала времени.
Обратите внимание, что в формуле используется функция MAX. Эта функция возвращает последнюю дату в контексте фильтра. Таким образом, функция DATESBETWEEN возвращает таблицу дат, начиная с самой ранней даты до момента, когда сообщается о последней дате.
Примеры в этой статье можно добавить в образец модели Power BI Desktop. Чтобы получить модель, см. пример модели DAX.
Предположим, что самая ранняя дата, хранящаяся в таблице Date, — 1 июля 2017 г. Поэтому, когда отчет фильтрует меру по июню 2020 г., функция DATESBETWEEN возвращает диапазон дат с 1 июля 2017 г. по 30 июня 2020 г.
DATEVALUE
Преобразует дату в текстовом формате в дату в формате datetime.
Синтаксис
Параметры
Значение свойства или возвращаемое значение
Дата в формате datetime.
Remarks
При преобразовании функция DATEVALUE использует языковой стандарт, а также параметры даты и времени модели для определения значения даты. Если параметры даты и времени даты модели представляются в формате «День.Месяц.Год», то строка «08.01.2009» будет преобразована в значение типа datetime, эквивалентное 8 января 2009 года. Но если в соответствии с параметрами даты и времени даты представляются в формате «Месяц.День.Год», та же строка будет преобразована в значение типа datetime, эквивалентное 1 августа 2009 года.
Если при преобразовании с использованием языкового стандарта, а также параметров даты и времени модели происходит сбой, функция DATEVALUE попытается использовать другие форматы даты. В таком случае некоторые строки, возможно, будут преобразованы с использованием одного формата, а другие строки — с использованием другого формата. Например, строка «05.04.2018», возможно, будет преобразована в «4 мая 2018 г.», а «20.04.2018» — в 20 апреля.
Если компонент года в аргументе date_text отсутствует, функция DATEVALUE использует текущий год из встроенных часов компьютера. Сведения о времени в аргументе date_text не учитываются.
При создании модели ее языковой стандарт, а также параметры даты и времени определяются на основе настроек приложения и компьютера.
Пример
В приведенном ниже примере возвращаются разные значения datetime в зависимости от языкового стандарта и параметров модели, определяющих представление дат и времени.
Если в соответствии с параметрами даты и времени день предшествует месяцу, в примере возвращается значение типа datetime, соответствующее 8 января 2009 г.
Если в соответствии с параметрами даты и времени месяц предшествует дню, в примере возвращается значение типа datetime, соответствующее 1 августа 2009 г.
DATESINPERIOD
Возвращает таблицу, содержащую столбец дат, который начинается с даты начала и продолжается заданные количество и тип интервалов даты.
Эта функция подходит для передачи в качестве фильтра функции CALCULATE. Используйте его для фильтрации выражения по стандартным интервалам дат, например дням, месяцам, кварталам или годам.
Синтаксис
Параметры
Возвращаемое значение
Таблица, содержащая один столбец значений даты.
Remarks
В наиболее распространенном варианте использования dates является ссылкой на столбец дат помеченной таблицы дат.
Если число, указанное для number_of_intervals, положительное, даты перемещаются вперед во времени. Если число отрицательное, даты сдвигаются назад во времени.
Возвращаемая таблица может содержать только даты, хранящиеся в столбце dates. Например, если столбец dates начинается с 1 июля 2017 г., а значение start_date равно 1 июля 2016 г., то возвращаемая таблица будет начинаться с 1 июля 2017 г.
Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).
Пример
В следующем определении меры таблицы Sales используется функция DATESINPERIOD для вычисления дохода за прошлый год (PY).
Обратите внимание, что в формуле используется функция MAX. Эта функция возвращает последнюю дату в контексте фильтра. Таким образом, функция DATESINPERIOD возвращает таблицу дат, начиная с последней даты последнего года.
Примеры в этой статье можно добавить в образец модели Power BI Desktop. Чтобы получить модель, см. пример модели DAX.
Учтите, что отчет фильтруется по месяцам июня 2020 г. Функция MAX возвращает 30 июня 2020 г. Затем функция DATESINPERIOD возвращает диапазон дат с 1 июля 2019 г. по 30 июня 2020 г. Это год со значениями, начиная с 30 июня 2020 г. за последний год.
EDATE
Возвращает дату, отстоящую на заданное количество месяцев от начальной даты. Используйте EDATE для вычисления дат погашения или сроков выполнения, которые попадают в тот же день месяца, что и дата выпуска.
Синтаксис
Параметры
Термин | Определение |
---|---|
start_date | Дата в формате datetime или text, представляющая дату начала. |
months | Целое число месяцев до или после start_date. |
Возвращаемое значение
Дата (datetime).
Примечания
В отличие от Microsoft Excel, где даты хранятся в виде последовательных серийных номеров, DAX работает с датами в формате datetime. Даты, хранящиеся в других форматах, неявно преобразуются.
Если start_date не является допустимой датой, EDATE возвращает ошибку. Убедитесь, что ссылка на столбец или дата, указываемые в качестве первого аргумента, являются датой.
Если значение months не целое, происходит усечение.
Если аргумент date является текстовым представлением даты, функция EDATE использует языковой стандарт и параметры даты и времени клиентского компьютера, чтобы понять текстовое значение и выполнить преобразование. Если в соответствии с текущими параметрами даты и времени даты представляются в формате «День.Месяц.Год», то строка «08.01.2009» будет интерпретироваться как значение типа datetime, эквивалентное 8 января 2009 г. Однако если в соответствии с текущими параметрами даты и времени даты представляются в формате «Месяц.День.Год», та же строка будет преобразована в значение типа datetime, эквивалентное 1 августа 2009 года.
Если запрошенная дата находится за последним днем соответствующего месяца, то возвращается последний день месяца. Например, следующие функции: EDATE («2009-01-29», 1), EDATE («2009-01-30», 1), EDATE («2009-01-31», 1) возвращают 28 февраля 2009 г., что соответствует одному месяцу после начальной даты.
Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).
Пример
В следующем примере возвращается дата через три месяца после даты заказа, которая хранится в столбце [TransactionDate].
Dax количество дней между датами
Возвращает указанную дату в формате datetime.
Синтаксис
Параметры
Термин | Определение |
---|---|
year | Число, представляющее год. |
Значение аргумента year может содержать от одной до четырех цифр. Аргумент year интерпретируется в соответствии с системой дат, используемой компьютером.
Поддерживаются даты, начинающиеся с 1 марта 1900 года.
Если ввести число с десятичными знаками, число округляется.
Если значение year находится в диапазоне от 0 до 1899, то значение добавляется к 1900 для получения окончательного значения. См. следующие примеры. Примечание. Для предотвращения нежелательных результатов следует использовать четыре цифры для аргумента year, если это возможно. Например, при использовании 07 в качестве значения года возвращается 1907.
Отрицательные целые числа не поддерживаются. Допустимые значения: 1–12.
Если month является числом от 1 до 12, то оно представляет месяц года. 1 представляет январь, 2 — февраль и т. д. до 12, которое представляет декабрь.
При вводе целого числа, превышающего 12, выполняются следующие вычисления: дата вычисляется путем сложения значения month со значением year. Например, если у вас есть дата DATE (2008, 18, 1), функция возвращает значение datetime, эквивалентное 1 июня 2009, поскольку 18 месяцев добавляются к началу 2008, и получается июнь 2009 года. Примеры см. ниже.
Отрицательные целые числа не поддерживаются. Допустимые значения: 1–31.
Если day является числом от 1 до последнего дня в заданном месяце, то оно представляет день месяца.
При вводе целого числа, превышающего последний день указанного месяца, выполняются следующие вычисления: дата вычисляется путем сложения значения day со значением month. Например, в формуле DATE( 2008, 3, 32) функция DATE возвращает значение datetime, эквивалентное 1 апреля 2008 года, поскольку 32 дня добавляются к началу марта, что дает значение 1 апреля.
Если day содержит десятичную часть, она округляется до ближайшего целого значения.
Возвращаемое значение
Возвращает указанную дату (datetime).
Remarks
Функция DATE принимает целые числа, которые являются входными аргументами, и формирует соответствующую дату. Функция DATE наиболее полезна в ситуациях, когда в формулах указаны год, месяц и день. Например, базовые данные могут содержать даты в формате, который не распознается как дата, например ГГГГММДД. Функцию DATE можно использовать вместе с другими функциями для преобразования дат в число, которое может быть распознано как дата.
В отличие от Microsoft Excel, в котором даты хранятся в виде порядкового номера, функции даты DAX всегда возвращают тип данных datetime. Однако при необходимости можно использовать форматирование для вывода дат в виде порядковых номеров.
Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).
Примеры
Простой пример для функции DATE
Следующая формула возвращает дату 8 июля 2009 года:
Годы до 1899 г.
Если значение, введенное для аргумента year, находится в диапазоне от 0 (ноль) до 1899 (включительно), это значение добавляется к 1900 для вычисления года. Следующая формула возвращает дату 2 января 1908 года: (1900 + 08).
Годы после 1899 г.
Если year находится в диапазоне от 1900 до 9999 (включительно), это значение используется в качестве года. Следующая формула возвращает дату 2 января 2008 года:
Months
Если month больше 12, month добавляет это число месяцев к первому месяцу в указанном году. Следующая формула возвращает дату 2 февраля 2009 года:
Если значение day больше, чем число дней в указанном месяце, day добавляет это число дней к первому дню месяца. Следующая формула возвращает дату 4 февраля 2008 года: