Ta funkcja zwraca datę występującą n miesięcy po dacie startdate lub, jeśli n jest wartością ujemną, n miesięcy przed datą startdate.
Składnia:
AddMonths(startdate, n
, [ , mode])
Typ zwracanych danych: dual
Funkcja addmonths() dodaje lub odejmuje zdefiniowaną liczbę miesięcy, n, od startdate i zwraca datę otrzymaną w wyniku.
Argument mode ma wpływ na zwracane przez funkcję startdate wartości obejmujące dni od 28 do końca miesiąca. Ustawienie argumentu mode na 1 powoduje, że funkcja addmonths() zwraca datę odległą od końca miesiąca o tyle samo dni, co data startdate.
Na przykład 28 lutego jest ostatnim dniem miesiąca. Jeśli za pomocą funkcji addmonths(), z argumentem mode ustawionym na 1, przesuniemy datę o dwa miesiące do przodu, to otrzymamy ostatni dzień kwietnia, czyli 30 kwietnia.
Argumenty
Argument
Opis
startdate
Data rozpoczęcia jako znacznik czasu, na przykład „2012-10-12”.
n
Liczba miesięcy jako dodatnia lub ujemna liczba całkowita.
mode
Określa, czy miesiąc jest dodawany względem początku miesiąca, czy końca miesiąca. Trybem domyślnym jest 0 w przypadku operacji dodawania względem początku miesiąca. W przypadku operacji dodawania względem końca miesiąca należy ustawić tryb na 1. Jeśli tryb jest ustawiony na 1, a datą wejściową jest 28. lub data późniejsza, wówczas funkcja sprawdza, ile dni zostało do osiągnięcia końca miesiąca od daty startdate. Taka sama liczba dni do końca miesiąca jest ustawiana w zwróconej dacie.
Kiedy używać
Funkcja addmonths() może być używana w różnych wyrażeniach, w których trzeba znaleźć datę późniejszą lub wcześniejszą o określoną liczbę miesięcy od podanej.
Na przykład, za pomocą funkcji addmonths() można znaleźć datę zakończenia obowiązywania umowy na usługi telefonii komórkowej.
Przykłady funkcji
Przykład
Wynik
addmonths ('01/29/2003' ,3)
Zwraca wartość „04/29/2003”.
addmonths ('01/29/2003',3,0)
Zwraca wartość „04/29/2003”.
addmonths ('01/29/2003',3,1)
Zwraca wartość „04/28/2003”.
addmonths ('01/29/2003',1,0)
Zwraca wartość „02/28/2003”.
addmonths ('01/29/2003',1,1)
Zwraca wartość „02/26/2003”.
addmonths ('02/28/2003',1,0)
Zwraca wartość „03/28/2003”.
addmonths ('02/28/2003',1,1)
Zwraca wartość „03/31/2003”.
addmonths ('01/29/2003',-3)
Zwraca wartość „10/29/2002”.
Ustawienia regionalne
Jeżeli nie podano inaczej, w przykładach w tym temacie stosowany jest następujący format daty: MM/DD/RRRR. Format daty jest określony w instrukcji SET DateFormat w skrypcie ładowania danych. Domyślny format daty w Twoim systemie może być inny ze względu na ustawienia regionalne i inne czynniki. Formaty zastosowane w przykładach można zmienić, aby dostosować je do własnych wymagań. Zamiast tego można też zmienić formaty w skrypcie ładowania, aby pasowały do tych przykładów. Więcej informacji można znaleźć w temacie Modyfikowanie ustawień regionalnych na potrzeby aplikacji i skryptów.
Domyślne ustawienia regionalne w aplikacjach są oparte na profilu użytkownika. Te ustawienia regionalne nie są związane z językiem wyświetlanym w interfejsie użytkownika Qlik Cloud. Interfejs Qlik Cloud będzie wyświetlany w tym samym języku co używana przeglądarka.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
two_months_later
Tabela wynikowa
date
two_months_later
01/10/2020
03/10/2020
02/28/2020
04/28/2020
04/09/2020
06/09/2020
04/16/2020
06/16/2020
05/21/2020
07/21/2020
08/14/2020
10/14/2020
10/07/2020
12/07/2020
12/05/2020
02/05/2021
01/22/2021
03/22/2021
02/03/2021
04/03/2021
03/17/2021
05/17/2021
04/23/2021
06/23/2021
05/04/2021
07/04/2021
06/30/2021
08/30/2021
07/26/2021
09/26/2021
12/27/2021
02/27/2022
02/02/2022
04/02/2022
02/26/2022
04/26/2022
03/07/2022
05/07/2022
03/11/2022
05/11/2022
Pole two_months_later jest tworzone w instrukcji ładowania poprzedzającego przy użyciu funkcji addmonths(). Pierwszy podany argument określa datę wyjściową. Drugi reprezentuje liczbę miesięcy, jaka ma zostać dodana do daty startdate lub od niej odjęta. W tym przypadku przekazano wartość 2.
Transakcja 8193 miała miejsca 14 sierpnia. W związku z tym funkcja addmonths() dla pola two_months_later zwraca datę 14 października 2020 r.
Przykład 2 – względny koniec miesiąca
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Zestaw danych zawierający zbiór transakcji na koniec miesiąca w 2022 roku, który jest ładowany do tabeli o nazwie Transactions.
Pole danych w formacie zmiennej systemowej DateFormat (MM/DD/YYYY).
Tworzenie pola, relative_two_months_prior, które zwraca względną w odniesieniu do końca miesiąca datę o dwa miesiące wcześniejszą od daty zawarcia transakcji.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
relative_two_months_prior
Tabela wynikowa
date
relative_two_months_prior
01/28/2022
11/27/2021
01/31/2022
11/30/2021
02/28/2022
12/31/2021
04/29/2022
02/27/2022
04/30/2022
02/28/2022
05/31/2022
03/31/2022
08/14/2022
06/14/2022
10/07/2022
08/07/2022
Pole relative_two_months_prior jest tworzone w instrukcji ładowania poprzedzającego przy użyciu funkcji addmonths(). Pierwszy podany argument określa datę wyjściową. Drugi reprezentuje liczbę miesięcy, jaka ma zostać dodana do daty startdate lub od niej odjęta. W tym przypadku przekazano wartość -2. Ostatni argument to mode, któremu nadano wartość 1, co zmusza funkcję do obliczenia daty względnej w odniesieniu do końca miesiąca dla wszystkich dat od 28. do ostatniego dnia miesiąca.
Transakcja 8191 ma miejsce 29 kwietnia 2022 r. Wstępnie cofnięcie o dwa miesiące oznacza ustawienie daty na luty. Następnie, ze względu na to, że przypisano trzeciemu argumentowi wartość 1 oraz na to, że data jest późniejsza niż 27. dzień miesiąca, funkcja oblicza wartość względną w odniesieniu do końca miesiąca. Funkcja stwierdza, że 29. jest przedostatnim dniem kwietnia, w związku z czym zwraca przedostatni dzień lutego, czyli 27.
Przykład 3 — przykład z obiektem wykresu
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera ten sam zestaw danych i scenariusz co w pierwszym przykładzie.
Jednak w tym przykładzie do aplikacji został załadowany niezmieniony zbiór danych. Obliczenia zwracające datę o dwa miesiące późniejszą od daty zawarcia transakcji są tworzone jako miara w obiekcie wykresu.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar: date.
Utwórz następującą miarę:
=addmonths(date,2)
Tabela wynikowa
date
=addmonths(date,2)
01/10/2020
03/10/2020
02/28/2020
04/28/2020
04/09/2020
06/09/2020
04/16/2020
06/16/2020
05/21/2020
07/21/2020
08/14/2020
10/14/2020
10/07/2020
12/07/2020
12/05/2020
02/05/2021
01/22/2021
03/22/2021
02/03/2021
04/03/2021
03/17/2021
05/17/2021
04/23/2021
06/23/2021
05/04/2021
07/04/2021
06/30/2021
08/30/2021
07/26/2021
09/26/2021
12/27/2021
02/27/2022
02/02/2022
04/02/2022
02/26/2022
04/26/2022
03/07/2022
05/07/2022
03/11/2022
05/11/2022
Miara two_months_later jest tworzona w obiekcie wykresu przy użyciu funkcji addmonths(). Pierwszy podany argument określa datę wyjściową. Drugi reprezentuje liczbę miesięcy, jaka ma zostać dodana do daty startdate lub od niej odjęta. W tym przypadku przekazano wartość 2.
Transakcja 8193 miała miejsca 14 sierpnia. W związku z tym funkcja addmonths() zwraca datę 14 października 2020 r. dla pola two_months_later.
Przykład 4 — Scenariusz
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Zestaw danych załadowany do tabeli o nazwie Mobile_Plans.
Informacje obejmujące identyfikator umowy, datę rozpoczęcia, długość trwania umowy oraz miesięczną opłatę.
Użytkownik potrzebuje obiektu wykresu pokazującego datę zakończenia każdej umowy telefonicznej według identyfikatora umowy.