Ta funkcja zwraca datę obliczoną na podstawie parametrów rok YYYY, miesiąc MM i dzień DD.
Składnia:
MakeDate(YYYY [ , MM [ , DD ] ])
Typ zwracanych danych: dual
Argumenty
Argument
Opis
YYYY
Rok jest liczbą całkowitą.
MM
Miesiąc jest liczbą całkowitą. Jeśli nie zostanie podany miesiąc, przyjmowana jest wartość 1 (styczeń).
DD
Dzień jest liczbą całkowitą. Jeśli nie zostanie podany dzień, przyjmowana jest wartość 1 (pierwszy).
Kiedy używać
Funkcja makedate() znajduje zastosowanie do generowania kalendarzy w skryptach do generowania danych. Ponadto można jej użyć, gdy pole daty nie jest bezpośrednio dostępne jako data, ale potrzebuje pewnych transformacji, aby pobrać rok, miesiąc i dzień.
W tych przykładach używany jest format daty MM/DD/YYYY. Format daty jest określony w instrukcji SET DateFormat u góry skryptu ładowania danych. Zmień format w przykładach odpowiednio do swoich wymagań.
Przykłady funkcji
Przykład
Wynik
makedate(2012)
Zwraca wartość 01/01/2012.
makedate(12)
Zwraca wartość 01/01/2012.
makedate(2012,12)
Zwraca wartość 12/01/2012.
makedate(2012,2,14)
Zwraca wartość 02/14/2012.
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:
transaction_year
transaction_month
transaction_day
transaction_date
Tabela wynikowa
transaction_year
transaction_month
transaction_day
transaction_date
2018
08
30
08/30/2018
2018
09
07
09/07/2018
2018
09
16
09/16/2018
2018
09
22
09/22/2018
2018
09
23
09/23/2018
Pole transaction_date jest tworzone w instrukcji ładowania poprzedzającego przez użycie funkcji makedate() i przekazanie pól roku, miesiąca i dnia jako argumentów funkcji.
Następnie funkcja ta łączy i konwertuje te wartości na pole daty oraz zwraca wynik w formacie zmiennej systemowej DateFormat.
Przykład 2 – zmodyfikowana zmienna systemowa DateFormat
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.
Utworzenie pola transaction_date w formacie DD/MM/RRRR bez modyfikacji zmiennej systemowej DateFormat.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
transaction_year
transaction_month
transaction_day
transaction_date
Tabela wynikowa
transaction_year
transaction_month
transaction_day
transaction_date
2018
08
30
30/08/2018
2018
09
07
07/09/2018
2018
09
16
16/09/2018
2018
09
22
22/09/2018
2018
09
23
23/09/2018
W tym przypadku funkcja makedate() jest zagnieżdżona w funkcji date(). Drugi argument funkcji date() ustawia format wyników funkcji makedate() na wymagany DD/MM/RRRR.
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:
Zestaw danych zawierający zestaw transakcji za rok 2018, który jest ładowany do tabeli o nazwie „Transactions”.
Daty transakcji przekazane w dwóch polach: year i month.
Utwórz miarę obiektu wykresu, transaction_date, która zwraca datę w formacie MM/DD/RRRR.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
year
month
Aby obliczyć transaction_date, utwórz następującą miarę:
=makedate(transaction_year,transaction_month)
Tabela wynikowa
transaction_year
transaction_month
transaction_date
2018
08
08/01/2018
2018
09
09/01/2018
Miara transaction_date jest tworzona w obiekcie wykresu za pomocą funkcji makedate(), której jako argumenty przekazano pola roku i miesiąca.
Następnie funkcja ta łączy te wartości, jak również zakładaną wartość dnia 01. Następnie te wartości zostają przekonwertowane na pole daty oraz zostaje zwrócony wynik w formacie zmiennej systemowej DateFormat.
Przykład 4 — Scenariusz
Przegląd
Utwórz zestaw danych kalendarza dla roku kalendarzowego 2022.
Skrypt ładowania
SET DateFormat='MM/DD/YYYY';
Calendar:
load
*
where year(date)=2022;
load
date(recno()+makedate(2021,12,31)) as date
AutoGenerate 400;
Wyniki
Tabela wynikowa
date
01/01/2022
01/02/2022
01/03/2022
01/04/2022
01/05/2022
01/06/2022
01/07/2022
01/08/2022
01/09/2022
01/10/2022
01/11/2022
01/12/2022
01/13/2022
01/14/2022
01/15/2022
01/16/2022
01/17/2022
01/18/2022
01/19/2022
01/20/2022
01/21/2022
01/22/2022
01/23/2022
01/24/2022
01/25/2022
Jeszcze 340 wierszy
Funkcja makedate() tworzy wartość daty 31 grudnia 2021 r. Funkcja recno() dostarcza numer bieżącego rekordu, który jest obecnie ładowany do tabeli (numeracja zaczyna się od 1). W efekcie pierwszy rekord ma datę 1 stycznia 2022 r. Każde kolejne wywołanie funkcji recno() będzie zwiększać tę datę o 1. To wyrażenie znajduje się w funkcji date(), która konwertuje wartość na datę. Ten proces zostaje wykonany 400 razy przez funkcję autogenerate. Na koniec, wykorzystując ładowanie poprzedzające, można użyć warunku where, aby załadować tylko daty z roku 2022. Ten skrypt generuje kalendarz zawierający każdą datę z 2022 roku.
Czy ta strona była pomocna?
Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!