Compartir vía


DATESBETWEEN

Se aplica a:columna Calculadatabla calculadaMedidacálculo visual

Nota

No se recomienda usar esta función en cálculos visuales, ya que probablemente devuelva resultados sin sentido.

Para la entrada de columna de fecha, devuelve una tabla que contiene una columna de fechas que comienza con una fecha de inicio especificada y continúa hasta una fecha de finalización especificada.

Para la entrada del calendario, devuelve una tabla que comienza con una fecha de inicio especificada y continúa hasta una fecha de finalización especificada. La tabla contiene todas las columnas etiquetadas principal y todas las columnas relacionadas con el tiempo.

Esta función es adecuada para pasar como filtro a la función CALCULATE. Úselo para filtrar una expresión por un intervalo de fechas personalizado.

Nota

Si trabaja con intervalos de fecha estándar, como días, meses, trimestres o años, se recomienda usar la función de DATESINPERIOD más adecuada.

Sintaxis

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

Parámetros

Término Definición
dates or calendar Columna que contiene fechas o una referencia de calendario
StartDate Expresión de fecha y día. Si se usa la sintaxis del calendario, use el mismo tipo de datos que la columna principal etiquetada en la categoría Día.
EndDate Expresión de fecha y día. Si se usa la sintaxis del calendario, use el mismo tipo de datos que la columna principal etiquetada en la categoría Día.

Valor devuelto

Para la entrada de columna de fecha, una tabla que contiene una sola columna de valores de fecha.
Para la entrada del calendario, una tabla que contiene todas las columnas etiquetadas principal y todas las columnas relacionadas con el tiempo.

Observaciones

  • En el caso de uso más común, dates es una referencia a la columna de fecha de una tabla de fechas marcada.

  • Si StartDate es BLANK, StartDate será el valor más antiguo de la columna dates. En el caso del calendario, será el primer valor de la columna que se etiqueta como día.

  • Si EndDate es BLANK, EndDate será el valor más reciente de la columna dates. En el caso del calendario, será el último valor de la columna que se etiqueta como día.

  • Las fechas usadas como StartDate y EndDate son inclusivas. Por lo tanto, por ejemplo, si el valor de StartDate es el 1 de julio de 2019, esa fecha se incluirá en la tabla devuelta (siempre que la fecha exista en la columna dates).

  • Para la entrada de columna de fecha, la tabla devuelta solo puede contener fechas almacenadas en la Dates columna. Por ejemplo, si la columna Dates comienza desde el 1 de julio de 2017 y el valor de StartDate es el 1 de julio de 2016, la tabla devuelta comenzará desde el 1 de julio de 2017.

  • Para la entrada del calendario, si la fecha de entrada no se encuentra en la columna de día etiquetada, se tratará como BLANK y, por tanto, se usará el primer/último valor.

  • Para la entrada del calendario, use el mismo tipo de datos y formato que la columna de día etiquetada para la fecha de inicio y la fecha de finalización. Por ejemplo, si la columna usa el formato YYYY-Sn-Qn-Mnn-Wnn-Dnn (por ejemplo, "2014-S2-Q4-M11-W45-D03"), la fecha de inicio y la fecha de finalización deben seguir el mismo formato (por ejemplo, "2015-S2-Q4-M11-W45-D03"). De lo contrario, el comportamiento no está definido.

  • Esta función no se admite para su uso en el modo DirectQuery cuando se usa en columnas calculadas o reglas de seguridad de nivel de fila (RLS).

Ejemplo

La siguiente definición de medida de la tabla Sales usa la función para generar un cálculo de (LTD). La vida útil representa la acumulación de una medida a lo largo del tiempo desde el comienzo del tiempo.

Observe que la fórmula usa la función MAX. Esta función devuelve la fecha más reciente que se encuentra en el contexto de filtro. Por lo tanto, la función DATESBETWEEN devuelve una tabla de fechas a partir de la fecha más antigua hasta la fecha más reciente que se notifica.

Los ejemplos de este artículo se pueden usar con el modelo de Power BI Desktop de Adventure Works 2020 de ejemplo. Para obtener el modelo, consulte DAX modelo de ejemplo.

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

Tenga en cuenta que la fecha más antigua almacenada en la tabla Fecha es el 1 de julio de 2017. Por lo tanto, cuando un informe filtra la medida por el mes de junio de 2020, la función DATESBETWEEN devuelve un intervalo de fechas comprendido entre el 1 de julio de 2017 y el 30 de junio de 2020.

Ejemplo de inteligencia de tiempo basada en calendarios

La siguiente definición de medida de la tabla Sales usa la función para generar un cálculo de (LTD). La vida útil representa la acumulación de una medida a lo largo del tiempo desde el comienzo del tiempo.

Observe que la fórmula usa la función MAX. Esta función devuelve el valor de datekey máximo que se encuentra en el contexto de filtro. Por lo tanto, la función DATESBETWEEN devuelve una tabla de fechas a partir de la fecha más antigua hasta la fecha más reciente que se notifica. DateKey se usa como ejemplo para mostrar que la categoría "Day" se puede etiquetar con una columna que no tiene tipo de fecha.

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