Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
columna Calculada
tabla calculada
Medida
cálculo visual
Nota
No se recomienda usar esta función en cálculos visuales, ya que probablemente devuelva resultados sin sentido.
Si input es una columna de fecha, devuelve una tabla que contiene una columna de fechas, desplazada hacia delante o hacia atrás en el tiempo por el número especificado de intervalos de las fechas en el contexto actual.
Si la entrada es un calendario, la función devuelve fechas desplazadas hacia delante o hacia atrás en el tiempo por el número especificado de intervalos, en función del contexto actual. La salida incluye las columnas etiquetadas principales, así como las columnas relacionadas con el tiempo.
Sintaxis
DATEADD(<dates> or <calendar>, <number_of_intervals>, <interval>[,<Extension>],[,<Truncation>])
Parámetros
| Término | Definición |
|---|---|
dates or calendar |
Columna que contiene fechas o una referencia de calendario. |
number_of_intervals |
Entero que especifica el número de intervalos que se van a agregar o restar de las fechas. |
interval |
Intervalo por el que se van a desplazar las fechas. El valor de interval puede ser uno de los siguientes: year, , quartermonth, week, . day La enumeración de semana solo es aplicable cuando se proporciona una referencia de calendario. |
extension |
Solo se aplica cuando se proporciona una referencia de calendario. Defina el comportamiento cuando el período de tiempo original tenga menos fechas que el período de tiempo resultante. Los valores válidos son: EXTEND (valor predeterminado), PRECISE, ENDALIGNED. |
truncation |
Solo se aplica cuando se proporciona una referencia de calendario. Defina el comportamiento cuando el período de tiempo original tenga más fechas que el período de tiempo resultante. Los valores válidos son: BLANKS (Valor predeterminado), ANCHORED. |
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 columnas relacionadas con el tiempo para los períodos desplazados, en el contexto actual.
Observaciones
El argumento dates puede ser cualquiera de los siguientes:
Referencia a una columna de fecha y hora,
Expresión de tabla que devuelve una sola columna de valores de fecha y hora,
Expresión booleana que define una tabla de una sola columna de valores de fecha y hora.
Nota
Las restricciones en las expresiones booleanas se describen en el tema, CALCULATE función.
Si el número especificado para
number_of_intervalses positivo, las fechas dedatesse mueven hacia delante en el tiempo; si el número es negativo, las fechas dedatesse vuelven a cambiar en el tiempo.El parámetro
intervales una enumeración, no un conjunto de cadenas; por lo tanto, los valores no deben incluirse entre comillas. Además, los valores:year,quarter,month,daydeben escribirse en su totalidad al usarlos.La tabla de resultados solo incluye fechas que existen en la columna
dates.Si se usa la sintaxis de columna de fecha y las fechas del contexto actual no forman un intervalo contiguo, la función devuelve un error.
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: Cambio de un conjunto de fechas
La fórmula siguiente calcula las fechas que son un año antes de las fechas en el contexto actual.
= DATEADD ( DateTime[DateKey], -1, YEAR )
Ejemplo de inteligencia de tiempo basada en calendarios
La fórmula siguiente devuelve una tabla de fechas cambiadas un año de nuevo a partir de las fechas del contexto actual.
DATEADD ( FiscalCalendar, -1, YEAR )
Comportamiento especial cuando la entrada es una columna de fecha
Cuando la selección incluya los últimos dos días del mes, DATEADD usará la semántica de "extensión" e incluirá los días hasta el final del mes. Por ejemplo, cuando se incluyen el 27 y el 28 de febrero de 2013 en la selección y se agrega un mes, DATEADD devolverá el 27 de marzo al 31.
Este comportamiento solo se produce cuando se incluyen los últimos dos días del mes en la selección. Si solo se selecciona el 27 de febrero, irá al 27 de marzo.
= DATEADD(DateTime[DateKey], 1, month)
La inteligencia de tiempo basada en calendario proporciona más control a través de dos parámetros opcionales: "Extensión" y "Truncamiento". Consulte las descripciones de parámetros anteriores para obtener más información.
Comportamiento de dateAdd basado en calendario cuando la selección está en un grano más preciso que el nivel de desplazamiento
Cuando se usa la referencia de calendario y la selección está en un nivel más preciso que el nivel de desplazamiento, se toma un enfoque basado en índices. Para ilustrar este comportamiento, consideremos el escenario en el que la selección está en el nivel de fecha y DATEADD() cambia por mes. Esto es lo que Hará DateAdd:
Determine las posiciones de la selección actual en el mes.
Por ejemplo, si la selección actual abarca el 3 al 10 de marzo, las posiciones van del 3º al día 10 del mes.Cambiar el mes Aplicar el turno de mes, por ejemplo, un cambio de +1 cambia de marzo a abril.
Devolver las mismas posiciones relativas en el mes desplazado Recuperar el 3º al 10 del nuevo mes (por ejemplo, 3-10 de abril).
Parámetros para dateAdd basado en calendario cuando la selección está en un grano más preciso que el nivel de desplazamiento
Cuando la granularidad de selección es más fina que la unidad de desplazamiento (por ejemplo, la selección de fechas individuales al cambiar por mes), el comportamiento basado en índices puede provocar ambigüedades, especialmente en meses de distintas longitudes. Para controlar estos casos perimetrales, se presentan dos parámetros:
Parámetro de extensión (para pequeños → desplazamientos de período grandes):
Controla cómo se comporta la función cuando el período de destino es mayor que el actual. Use avanzar un mes como ejemplo:
Precise: mantiene estrictamente el intervalo de fechas original.
Feb 25–28→ →March 25–28Extending: permite que la ventana se expanda hacia el final del período si es necesario.
Feb 25–28→ →March 25–31EndAligned: alinea la fecha de finalización con el final del período de destino cuando la selección alcanza el final de su período; de lo contrario, conserva las posiciones relativas.
Feb 28→ →March 31, mientras queFeb 27→March 27
Parámetro de truncamiento (para grandes → pequeños desplazamientos de período)
Controla cómo se comporta la función cuando el mes de destino es más corto que el actual. Use mover hacia atrás un mes como ejemplo:
Anchored: ancla el resultado a la última fecha válida del período más pequeño.
March 31→ →Feb 28Blanks: devuelve en blanco cuando la fecha cambiada no existe.
March 31→ → (en blanco) (ya que febrero no tiene el 31)
Diferencias en el comportamiento entre la inteligencia de tiempo clásica y de calendario
Algunos escenarios pueden producir resultados diferentes al comparar la inteligencia de tiempo clásica y del calendario. Por ejemplo, en un año lunar, SamePeriodLastYear producirá resultados diferentes en la granularidad de fecha. En la inteligencia de tiempo basada en el calendario, el cambio del 29 de febrero de 2008 a un año da como resultado el 1 de marzo de 2007, ya que se trata como el día 60 del año. En la inteligencia de tiempo clásica, el mismo turno devuelve el 28 de febrero de 2007. La solución alternativa es usar DATEADD(Calendario, -<número de un año>, mes). Por ejemplo, si un año tiene 13 meses en el calendario, use DATEADD(Calendario, -13, mes). Este enfoque cambiará por mes para que febrero de 2008 vaya a febrero de 2007.
Contenido relacionado
funciones de inteligencia de tiempofunciones de fecha y hora