Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:
Počítaný sloupec
Počítaná tabulka
míra
vizuální
Poznámka
Tato funkce se nedoporučuje používat ve vizuálních výpočtech, protože pravděpodobně vrací nesmyslné výsledky.
Pokud je vstup sloupcem kalendářních dat, vrátí tabulku obsahující sloupec kalendářních dat, posunutou dopředu nebo dozadu o zadaný počet intervalů z kalendářních dat v aktuálním kontextu.
Pokud je vstup kalendářem, vrátí funkce kalendářní data posunutá dopředu nebo dozadu o zadaný počet intervalů na základě aktuálního kontextu. Výstup obsahuje primární označené sloupce i sloupce související s časem.
Syntax
DATEADD(<dates> or <calendar>, <number_of_intervals>, <interval>[,<Extension>],[,<Truncation>])
Parametry
| Semestr | Definice |
|---|---|
dates or calendar |
Sloupec, který obsahuje kalendářní data nebo odkaz na kalendář. |
number_of_intervals |
Celé číslo, které určuje počet intervalů, které se mají sčítat nebo odečítat od kalendářních dat. |
interval |
Interval, o který se mají data posunout. Hodnota intervalu může být jedna z následujících hodnot: year, quarter, month, week, . day Výčet týdnů se dá použít jenom v případě, že je k dispozici odkaz na kalendář. |
extension |
Platí pouze v případě, že je k dispozici odkaz na kalendář. Definujte chování, pokud má původní časové období méně kalendářních dat než výsledné časové období. Platné hodnoty jsou: EXTENDING (Default), PRECISE, ENDALIGNED. |
truncation |
Platí pouze v případě, že je k dispozici odkaz na kalendář. Definujte chování, kdy má původní časové období více kalendářních dat než výsledné časové období. Platné hodnoty jsou: BLANKS (Výchozí), ANCHORED. |
Návratová hodnota
Pro vstup sloupce kalendářního data tabulka obsahující jeden sloupec hodnot kalendářních dat.
Pro vstup kalendáře tabulka obsahující všechny primární označené sloupce a sloupce související s časem pro posunutá období v aktuálním kontextu.
Poznámky
Argument dates může být některý z následujících:
Odkaz na sloupec data a času,
Výraz tabulky, který vrací jeden sloupec hodnot data a času,
Logický výraz, který definuje tabulku s jedním sloupcem hodnot data a času.
Poznámka
Omezení logických výrazů jsou popsána v tématu, CALCULATE funkce.
Pokud je číslo zadané pro
number_of_intervalskladné, posunou se data vdatesdopředu v čase; pokud je číslo záporné, posunou se data vdateszpět v čase.Parametr
intervalje výčet, nikoli sada řetězců; hodnoty by proto neměly být uzavřeny do uvozovek. Také hodnoty:year,quarter,month,dayby měly být při jejich použití zaplněné.Výsledná tabulka obsahuje pouze data, která existují ve sloupci
dates.Pokud se použije syntaxe sloupce kalendářního data a kalendářní data v aktuálním kontextu neformují souvislý interval, vrátí funkce chybu.
-
Tato funkce není podporována pro použití v režimu DirectQuery při použití v počítaných sloupcích nebo pravidlech zabezpečení na úrovni řádků (RLS).
Příklad – posun sady kalendářních dat
Následující vzorec vypočítá kalendářní data, která jsou jeden rok před kalendářními daty v aktuálním kontextu.
= DATEADD ( DateTime[DateKey], -1, YEAR )
Příklad časového měřítka na základě kalendáře
Následující vzorec vrátí tabulku kalendářních dat posunutých o jeden rok zpět od kalendářních dat v aktuálním kontextu.
DATEADD ( FiscalCalendar, -1, YEAR )
Speciální chování, když vstup je sloupec kalendářního data
Pokud výběr obsahuje poslední dva dny v měsíci, DATEADD použije sémantiku "rozšíření" a bude obsahovat dny do konce měsíce. Například když se do výběru zahrne 27. února a 28. února 2013 a přidá se měsíc, DATEADD vrátí 27. března až 31.
K tomuto chování dochází pouze v případě, že jsou ve výběru zahrnuty poslední dva dny v měsíci. Pokud je vybráno pouze 27. února, přejde na 27. března.
= DATEADD(DateTime[DateKey], 1, month)
Časové měřítko na základě kalendáře poskytuje větší kontrolu prostřednictvím dvou volitelných parametrů: "Extension" a "Truncation". Podrobnosti najdete v popisech výše uvedených parametrů.
Chování pro dateadd založené na kalendáři, pokud je výběr v jemném odstupňovaném intervalu než úroveň směny
Pokud se použije odkaz na kalendář a výběr je jemně odstupňovaný než úroveň směny, použije se přístup založený na indexu. Pro ilustraci tohoto chování se podíváme na scénář, ve kterém je výběr na úrovni data a DATEADD() se přesouvá po měsících. Tady je to, co dateAdd udělá:
Určete pozice aktuálního výběru v měsíci.
Pokud je například aktuální výběr rozložen na 3–10. března, pozice jsou od 3. do 10. dne v měsíci.Shift the month Apply the month shift — například shift of +1 changes March to April.
Vrátí stejné relativní pozice ve posunutém měsíci Načtení třetího na 10. dne nového měsíce (např. 3. dubna–10).
Parametry pro dateAdd založené na kalendáři, pokud je výběr v jemném odstupňovaném intervalu než úroveň směny
Pokud je členitost výběru jemnější než jednotka posunu (například výběr jednotlivých kalendářních dat při posunu po měsíci), může chování založené na indexu vést k nejednoznačnostem, zejména v měsících různých délek. Pro zpracování těchto hraničních případů se zavádějí dva parametry:
Parametr rozšíření (u malých → velkých posunů období):
Určuje, jak se funkce chová, když je cílové období delší než aktuální. Jako příklad použijte přechod dopředu o jeden měsíc:
Precise: Zachová původní rozsah kalendářních dat výhradně.
Feb 25–28→ →March 25–28Extending: Umožňuje v případě potřeby okno rozbalit směrem ke konci období .
Feb 25–28→ →March 25–31EndAligned: Zarovná koncové datum s koncem cílového období, když výběr dosáhne konce období; jinak zachovává relativní pozice.
Feb 28→ →March 31běhemFeb 27→March 27
Parametr zkrácení (u velkých → malých posunů období)
Určuje, jak se funkce chová, když je cílový měsíc kratší než aktuální měsíc. Jako příklad použijte pohyb vzad o jeden měsíc:
Anchored: Zakotví výsledek k poslednímu platnému datu menšího období.
March 31→ →Feb 28Blanks: Vrátí prázdnou hodnotu , pokud posunuté datum neexistuje.
March 31→ → (prázdné) (od února nemá 31.
Rozdíly v chování mezi klasickým a kalendářním časovým měřítkem
Některé scénáře můžou při porovnávání klasického a kalendářního časového měřítka přinést různé výsledky. Například v lunárním roce vytvoří SamePeriodLastYear různé výsledky v členitosti data. V kalendářním časovém měřítku má posun 29. února 2008 zpět jeden rok v 1. maru 2007, protože se považuje za 60. den roku. V klasickém časovém měřítku vrátí stejný posun 28. února 2007. Alternativním řešením je použít DATEADD(Calendar, -<number of a year>, month). Pokud má například rok v kalendáři 13 měsíců, použijte DATEADD(Kalendář, -13, měsíc). Tento přístup se posune o měsíc, takže únor 2008 přejde na únor 2007.