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.
Domyślne ustawienia regionalne w aplikacjach są oparte na regionalnych ustawieniach systemu komputera lub serwera, na którym zainstalowano Qlik Sense. Jeśli serwer Qlik Sense, do którego uzyskujesz dostęp, jest ustawiony na Szwecję, Edytor ładowania danych użyje szwedzkich ustawień regionalnych dla dat, godziny i waluty. Te ustawienia regionalne nie są związane z językiem wyświetlanym w interfejsie użytkownika Qlik Sense. Interfejs Qlik Sense będzie wyświetlany w tym samym języku co używana przeglądarka.
Przykład 1 — bez dodatkowych argumentów
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Zestaw danych zawierający zestaw transakcji za lata 2020–2022, który jest ładowany do tabeli o nazwie Transactions.
Pole danych w formacie zmiennej systemowej DateFormat (MM/DD/YYYY).
Tworzenie pola, two_months_later, które zwraca datę o dwa miesiące późniejszą od daty zawarcia transakcji.
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 poprzedniej instrukcji load 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 poprzedniej instrukcji load 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.