Jaa


DATEADD

Koskee seuraavia:Laskettu sarakeLaskettu taulukkoMittayksikköVisuaalinen laskenta -

Muistiinpano

Tätä funktiota ei suositella käytettäväksi visuaalisissa laskutoimituksissa, koska se todennäköisesti palauttaa merkityksettömiä tuloksia.

Jos syöte on päivämääräsarake, palauttaa taulukon, joka sisältää päivämääräsarakkeen, jota on siirretty joko eteenpäin tai taaksepäin ajassa määritetyn päivämäärävälin mukaan nykyisessä kontekstissa.
Jos syöte on kalenteri, funktio palauttaa ajassa siirrettyjä päivämääriä eteenpäin tai taaksepäin määritetyn aikavälien määrän mukaan nykyisen kontekstin perusteella. Tulos sisältää ensisijaiset merkityt sarakkeet sekä aikaan liittyvät sarakkeet.

Syntaksi

DATEADD(<dates> or <calendar>, <number_of_intervals>, <interval>[,<Extension>],[,<Truncation>])

Parametrit

Termi Määritelmä
dates or calendar Sarake, joka sisältää päivämääriä tai kalenteriviittauksen.
number_of_intervals Kokonaisluku, joka määrittää päivämääriin lisättävien tai niistä vähennettävien aikavälien määrän.
interval Aikaväli, jonka mukaan päivämääriä siirretään. Aikavälin arvo voi olla jokin seuraavista: year, , quartermonth, , weekday. Viikon luettelointi on käytettävissä vain, kun annetaan kalenteriviittaus.
extension Soveltuu vain, kun annetaan kalenteriviittaus. Määritä toiminta, kun alkuperäisellä ajanjaksolla on vähemmän päivämääriä kuin tulokseksi saatavalla ajanjaksolla. Kelvolliset arvot ovat: EXTENDING (Default), PRECISE, ENDALIGNED.
truncation Soveltuu vain, kun annetaan kalenteriviittaus. Määritä toiminta, kun alkuperäisessä ajanjaksossa on enemmän päivämääriä kuin tulokseksi saatavalla ajanjaksolla. Kelvolliset arvot ovat: BLANKS (oletus), ANCHORED.

Palautusarvo

Päivämääräsarakkeen syötteessä taulukko, joka sisältää yhden päivämääräarvojen sarakkeen.
Kalenterisyötteen osalta taulukko, joka sisältää kaikki ensisijaisesti merkityt sarakkeet ja aikaan liittyvät sarakkeet siirrettyjen jaksojen osalta nykyisessä kontekstissa.

Huomautuksia

dates-argumentti voi olla mikä tahansa seuraavista:

  • Viittaus päivämäärä/aika-sarakkeeseen

  • Taulukkolauseke, joka palauttaa päivämäärä/aika-arvojen yksittäisen sarakkeen

  • Ehtolauseke, joka määrittää päivämäärä/aika-arvojen yksisarakkeisen taulukon.

    Muistiinpano

    Ehtolausekkeiden rajoitteita käsitellään aiheessa CALCULATE funktion.

  • Jos number_of_intervals määritetty luku on positiivinen, dates päivämääriä siirretään ajassa eteenpäin. jos luku on negatiivinen, dates päivämääriä siirretään ajassa taaksepäin.

  • interval parametri on luettelointi, ei merkkijonojoukko. sen vuoksi arvoja ei tulisi ympäröidä lainausmerkeissä. Myös arvot: year, quarter, month, day tulisi kirjoittaa kokonaan, kun niitä käytetään.

  • Tulostaulukko sisältää vain päivämäärät, jotka ovat olemassa dates sarakkeessa.

  • Jos päivämääräsarakkeen syntaksia käytetään ja nykyisen kontekstin päivämäärät eivät muodosta yhtenäiseä aikajaksoa, funktio palauttaa virheen.

  • Tätä funktiota ei tueta DirectQuery-tilassa lasketuissa sarakkeissa tai rivitason suojauksen (RLS) säännöissä käytettäväksi.

Esimerkki – päivämääräjoukon siirtäminen

Seuraava kaava laskee päivämäärät, jotka ovat yhden vuoden edellä nykyisen kontekstin päivämääriä.

= DATEADD ( DateTime[DateKey], -1, YEAR )

Esimerkki kalenteripohjaisesta aikatiedoista

Seuraava kaava palauttaa päivämäärätaulukon, joka on siirtynyt yhden vuoden taaksepäin nykyisen kontekstin päivämääristä.

DATEADD ( FiscalCalendar, -1, YEAR )

Erityinen toiminta, kun syöte on päivämääräsarake

Kun valinta sisältää kuukauden viimeiset kaksi päivää, DATEADD käyttää "laajennuksen" semantiikkaa ja sisältää päivät kuukauden loppuun. Jos esimerkiksi vuoden 2013 27.2.2013 sisällytetään valintaan ja kuukausi lisätään, DATEADD palautetaan 27.–31.3.

Tämä toiminta tapahtuu vain, kun valintaan sisältyy viimeiset kaksi kuukauden päivää. Jos vain helmi 27 on valittuna, se siirtyy maaliskuun 27.

= DATEADD(DateTime[DateKey], 1, month)

Kalenteripohjaiset aikatiedot tarjoavat enemmän hallintaa kahdella valinnaisella parametrilla: "Extension" ja "Truncation". Katso lisätietoja edellä olevista parametrikuvauksista.

Toiminta kalenteripohjaisessa DateAdd-toiminnossa, kun valinta on hienompaa kuin siirtymätasolla

Kun kalenteriviittausta käytetään ja valinta on hienommin kuin vaihtotaso, indeksipohjainen lähestymistapa tehdään. Kuvataan tätä toimintaa tarkastelemalla skenaariota, jossa valinta on päivämäärätasolla ja DATEADD() siirtyy kuukauden mukaan. DateAdd tekee näin:

  • Selvitä nykyisen valinnan sijainnit kuukauden sisällä.
    Jos nykyinen valinta kestää esimerkiksi 3.–10.3., sijainnit ovat3.–10.3.

  • Vaihda kuukauden vaihto Käytä kuukausisiirtymää – esimerkiksi +1:n vaihto muuttuu maaliskuusta huhtikuuhun.

  • Palauta samat suhteelliset sijainnit siirrettynä kuukautena Nouda kolmas kuukausi uuden kuukauden kymmenes (esimerkiksi 3.–10. huhtikuuta).

Kalenteripohjaisen DateAdd-toiminnon parametrit, kun valinta on hienompaa kuin siirtymätaso

Kun valinnan askelväli on hienompi kuin vaihtoyksikkö (esim. yksittäisten päivämäärien valitseminen kuukauden mukaan siirryttäessä), indeksipohjainen toiminta voi johtaa moniselitteisyyksiin erityisesti eri pituisissa kuukausissa. Näiden reunatapausten käsittelyä varten esitellään kaksi parametria:

Laajennusparametri (pienille → suurten jaksojen vaihdoille):

Määrittää, miten funktio toimii, kun kohdejakso on pidempi kuin nykyinen. Käytä esimerkkinä siirtymistä eteenpäin yhden kuukauden kuluttua:

  • Precise: Pitää alkuperäisen päivämääräalueen tiukasti.
    Feb 25–28 → →March 25–28

  • Extending: Sallii ikkunan laajentamisen tarvittaessa jakson loppupuolella .
    Feb 25–28 → →March 25–31

  • EndAligned: Tasaa päättymispäivämäärän kohdekauden loppuun, kun valinta saavuttaa ajanjakson lopun. säilyttää muuten suhteelliset sijainnit.
    Feb 28 → → March 31Feb 27March 27

Katkaisuparametri (suurille → pienille jaksosiirtymäille)

Määrittää, miten funktio toimii, kun kohdekuukausi on lyhyempi kuin nykyinen. Käytä esimerkkinä siirtymistä taaksepäin yhden kuukauden aikana:

  • Anchored: Ankkuroi tuloksen pienemmän kauden viimeiseen kelvolliseen päivämäärään .
    March 31 → →Feb 28

  • Blanks: Palauttaa tyhjän , kun siirrettyä päivämäärää ei ole olemassa.
    March 31 → → (tyhjä) (koska helmikuussa ei ole 31. helmikuuta)

Perinteisen ja kalenterin aikatietojen väliset erot

Jotkin skenaariot voivat tuottaa erilaisia tuloksia verrattaessa perinteisiä aikatietoja ja kalenterin aikatietoja. Esimerkiksi kuuvuonna SamePeriodLastYear tuottaa erilaisia tuloksia päivämäärän askelvälillä. Kalenteripohjaisessa aikatiyössä helmikuun 29. 2008 siirtäminen yhden vuoden taaksepäin johtaa maakohtaiseen 1.3.2007, koska sitä käsitellään vuoden 60. päivänä. Perinteisessä aikatietofunktiossa sama muutos palauttaa arvon 28.2.2007. Vaihtoehtoinen menetelmä on käyttää - DATEADDtiliä (Calendar, -<number of a year>, month). Jos kalenterissa on esimerkiksi vuosi, jossa on 13 kuukautta, käytä kohdetta DATEADD(Calendar, -13, month). Tämä lähestymistapa muuttuu kuukauden mukaan, joten helmikuu 2008 siirtyy helmikuulle 2007.

AikatietofunktiotPäivämäärä ja aika -funktiot