Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:
Hesaplanan sütun
Hesaplanan tablo
Ölçü
Görsel hesaplama
Not
Bu işlev, anlamsız sonuçlar döndürdüğü için
Giriş bir tarih sütunuysa, geçerli bağlamdaki tarihlerden belirtilen aralık sayısı kadar ileri veya geri kaydırılmış bir tarih sütunu içeren bir tablo döndürür.
Giriş bir takvimse, işlev geçerli bağlama göre belirtilen aralık sayısına göre zamanda ileri veya geri kaydırılan tarihleri döndürür. Çıkış, birincil etiketli sütunların yanı sıra zamanla ilgili sütunları da içerir.
Sözdizimi
DATEADD(<dates> or <calendar>, <number_of_intervals>, <interval>[,<Extension>],[,<Truncation>])
Parametre
| Terim | Tanım |
|---|---|
dates or calendar |
Tarihler veya takvim başvurusu içeren bir sütun. |
number_of_intervals |
Tarihlere eklenecek veya tarihlerden çıkaracak aralık sayısını belirten bir tamsayı. |
interval |
Tarihlerin kaydırıldığı aralık. Aralık değeri aşağıdakilerden biri olabilir: year, quarter, month, week, . day Hafta sabit listesi yalnızca takvim başvurusu sağlandığında geçerlidir. |
extension |
Yalnızca takvim başvurusu sağlandığında geçerlidir. Özgün zaman aralığında, sonuçta elde edilen zaman aralığından daha az tarih olduğunda davranışı tanımlayın. Geçerli değerler şunlardır: EXTENDING (Varsayılan), DUYARLI, ENDALIGNED. |
truncation |
Yalnızca takvim başvurusu sağlandığında geçerlidir. Özgün zaman aralığında sonuçta elde edilen dönemden daha fazla tarih olduğunda davranışı tanımlayın. Geçerli değerler şunlardır: BLANKS (Varsayılan), ANCHORED. |
Dönüş değeri
Tarih sütunu girişi için, tek bir tarih değerleri sütunu içeren bir tablo.
Takvim girişi için, geçerli bağlamda, kaydırılan dönemler için tüm birincil etiketli sütunları ve saatle ilgili sütunları içeren bir tablo.
Açıklamalar
dates bağımsız değişkeni aşağıdakilerden biri olabilir:
Tarih/saat sütunu başvurusu,
Tarih/saat değerlerinin tek bir sütununu döndüren tablo ifadesi,
Tarih/saat değerlerinin tek sütunlu tablosunu tanımlayan Boole ifadesi.
Not
Boole ifadelerindeki kısıtlamalar, CALCULATE işlevikonusunda açıklanmıştır.
number_of_intervalsiçin belirtilen sayı pozitifse,datesiçindeki tarihler zamanda ileri taşınır; sayı negatifse,datesiçindeki tarihler zamanda geri kaydırılır.intervalparametresi bir dize kümesi değil bir numaralandırmadır; bu nedenle değerler tırnak içine alınmamalıdır. Ayrıca,year,quarter,month,daydeğerleri kullanılırken tam olarak yazılmalıdır.Sonuç tablosu yalnızca
datessütununda bulunan tarihleri içerir.Tarih sütunu söz dizimi kullanılıyorsa ve geçerli bağlamdaki tarihler bitişik aralık oluşturmuyorsa, işlev bir hata döndürür.
Bu işlev, hesaplanan sütunlarda veya satır düzeyi güvenlik (RLS) kurallarında kullanıldığında DirectQuery modunda kullanılmak üzere desteklenmez.
Örnek - Tarih kümesini kaydırma
Aşağıdaki formül, geçerli bağlamdaki tarihlerden bir yıl önceki tarihleri hesaplar.
= DATEADD ( DateTime[DateKey], -1, YEAR )
Takvim tabanlı akıllı zaman gösterimi örneği
Aşağıdaki formül, geçerli bağlamdaki tarihlerden bir yıl geriye kaydırılan bir tarih tablosu döndürür.
DATEADD ( FiscalCalendar, -1, YEAR )
Giriş bir tarih sütunu olduğunda özel davranış
Seçim ayın son iki gününü içerdiğinde " DATEADD uzantı" semantiğini kullanır ve ay sonuna kadar olan günleri içerir. Örneğin, 27 Şubat 2013 ve 28 Şubat 2013 seçime dahil edildiğinde ve bir ay eklendiğinde, DATEADD 27-31 Mart'ı döndürür.
Bu davranış yalnızca ayın son iki günü seçime dahil edildiğinde gerçekleşir. Yalnızca 27 Şubat seçilirse, 27 Mart'a gider.
= DATEADD(DateTime[DateKey], 1, month)
Takvim tabanlı akıllı zaman gösterimi, isteğe bağlı iki parametre aracılığıyla daha fazla denetim sağlar: "Uzantı" ve "Kesme". Ayrıntılar için lütfen yukarıdaki parametre açıklamalarına bakın.
Takvim tabanlı Tarih için davranış Seçim vardiya düzeyinden daha ince bir dilimde olduğunda ekle
Takvim başvurusu kullanıldığında ve seçim vardiya düzeyinden daha ince olduğunda dizin tabanlı bir yaklaşım uygulanır. Bu davranışı göstermek için, seçimin tarih düzeyinde olduğu ve DATEADD() aya göre kaydığı senaryoyu ele alalım. DateAdd şunları yapacaktır:
Geçerli seçimin ay içindeki konumlarını belirler.
Örneğin, geçerli seçim 3-10 Mart tarihleri arasındaysa, pozisyonlar ayın 3. gününden 10. gününe kadardır.Ayı kaydırma Ay vardiyasını uygulayın; örneğin, +1 vardiyası Mart'ı Nisan'a değiştirir.
Kaydırılan aydaki aynı göreli konumları döndürme 3.'ünü yeni ayın 10'una alın (örneğin, 3-10 Nisan).
Seçim vardiya düzeyinden daha ince bir dilimde olduğunda takvim tabanlı DateAdd parametreleri
Seçim ayrıntı düzeyi vardiya biriminden daha ince olduğunda (örn. aya göre tek tek tarihleri seçme), dizin tabanlı davranış , özellikle de aylar boyunca değişen uzunluklarda belirsizliklere neden olabilir. Bu uç durumlarını işlemek için iki parametre kullanıma sunulmuştur:
Uzantı parametresi (küçük → büyük dönem vardiyaları için):
Hedef süre geçerli olandan daha uzun olduğunda işlevin nasıl davranacağını denetler. Örnek olarak bir ay ileriye doğru ilerlemeyi kullanın:
Precise: Orijinal tarih aralığını kesinlikle korur.
Feb 25–28→ →March 25–28Extending: Gerekirse pencerenin dönemin sonuna doğru genişletilmesine izin verir.
Feb 25–28→ →March 25–31EndAligned: Seçim döneminin sonuna ulaştığında bitiş tarihini hedef dönemin sonuyla hizalar; aksi takdirde göreli konumları korur.
Feb 28→ →March 31→Feb 27March 27
Kesme Parametresi (büyük → küçük dönem vardiyaları için)
Hedef ay geçerli aydan kısa olduğunda işlevin nasıl davranacağını denetler. Örnek olarak bir ay geriye doğru ilerlemeyi kullanın:
Anchored: Sonucu daha küçük dönemin son geçerli tarihine sabitler.
March 31→ →Feb 28Blanks: Kaydırılan tarih mevcut olmadığında boş döndürür.
March 31→ → (boş) (Şubat'ta 31.
Klasik ve takvim akıllı zaman gösterimi arasındaki davranış farklılıkları
Bazı senaryolar klasik ve takvim akıllı zaman gösterimini karşılaştırırken farklı sonuçlar verebilir. Örneğin, ay yılında SamePeriodLastYear tarih ayrıntı düzeyinde farklı sonuçlar üretir. Takvim tabanlı akıllı zaman gösteriminde, 29 Şubat 2008'in bir yıl geriye kaydırılması, yılın 60. günü olarak ele alındığından 1 Mart 2007'de sonuçlanır. Klasik akıllı zaman gösteriminde aynı vardiya 28 Şubat 2007'yi döndürür. Geçici çözüm kullanmaktır DATEADD(Takvim, -<yıl> sayısı, ay). Örneğin, bir yılın takvimde 13 ayı varsa kullanın DATEADD(Takvim, -13, ay). Bu yaklaşım aya göre değiştirileceği için 2008 Şubat 2007'ye geçecektir.