Ta funkcja zwraca datę obliczoną na podstawie parametrów rok YYYY, tydzień WW i dzień tygodnia D.
Składnia:
MakeWeekDate(YYYY [ , WW [ , D ] ])
Typ zwracanych danych: dual
Funkcja makeweekdate() jest dostępna zarówno jako skrypt, jak i funkcja wykresu. Oblicza ona datę na podstawie otrzymanych argumentów. Jeśli parametr dnia tygodnia zostanie pominięty, funkcja ta zwróci datę poniedziałku w tym tygodniu.
Funkcja makeweekdate() nie uwzględnia zmiennych systemowych BrokenWeek, ReferenceDay ani FirstWeekDay. Tydzień 1 zaczyna się w pierwszy poniedziałek stycznia. Na przykład, w 2022 r. tydzień pierwszy zaczyna się 3 stycznia.
Argumenty
Argument
Opis
YYYY
Rok jest liczbą całkowitą.
WW
Tydzień jest liczbą całkowitą.
Wartość tygodnia może być dodatnia lub ujemna oraz może być większa niż 52, aby można było zwracać daty w różnych latach.
D
Dzień tygodnia jest liczbą całkowitą.
Jeśli nie zostanie podany dzień tygodnia, przyjmowana jest wartość 0 (poniedziałek). Pozostałe dni tygodnia mają przypisane następujące wartości: wtorek – 1, środa – 2, czwartek – 3, piątek – 4, sobota – 5 oraz niedziela – 6.
Kiedy używać
Funkcja makeweekdate() może być używana w skryptach do generowania danych w celu wygenerowania listy dat lub utworzenia daty na podstawie podanych wartości roku, tygodnia i dnia tygodnia.
Przykłady funkcji
Przykład
Wynik
makeweekdate(2014,6,6)
zwraca wartość 02/09/2014
makeweekdate(2014,6,1)
zwraca wartość 02/04/2014
makeweekdate(2014,6)
zwraca 02/03/2014 (przyjmuje się dzień tygodnia 0)
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 – uwzględnienie dnia
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Zestaw danych zawierający sumy sprzedaży w ujęciu tygodniowym za 2022 rok w tabeli o nazwie Sales.
Daty transakcji określone przez trzy pola: year, week i sales.
Poprzednie ładowanie, użyte do utworzenia miary, end_of_week, wykorzystuje funkcję makeweekdate(), aby zwrócić datę piątku w tamtym tygodniu w formacie MM/DD/RRRR.
Aby udowodnić, że zwrócona data to piątek, wyrażenie end_of_week zostało zapakowane w funkcję weekday(), pokazującą dzień tygodnia.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
transaction_year
transaction_week
end_of_week
week_day
Tabela wynikowa
transaction_year
transaction_week
end_of_week
week_day
2022
01
01/07/2022
Fri
2022
02
01/14/2022
Fri
2022
03
01/21/2022
Fri
2022
04
01/28/2022
Fri
2022
05
02/04/2022
Fri
2022
06
02/11/2022
Fri
2022
07
02/18/2022
Fri
Pole end_of_week jest tworzone w poprzedniej instrukcji load przy użyciu funkcji makeweekdate(). Pola transaction_year i transaction_week są przekazywane przez funkcję jako argumenty określające rok i tydzień. Argumentowi dnia przypisano wartość 4.
Następnie funkcja ta łączy i konwertuje te wartości na pole daty oraz zwraca wynik w formacie zmiennej systemowej DateFormat.
Funkcja makeweekdate() wraz z argumentami także jest zapakowana w funkcję weekday(), która zwraca pole week_day. Jak widać w powyższej tabeli, pole week_day pokazuje, że te daty rzeczywiście wypadają w piątek.
Przykład 2 – dzień nieuwzględniony
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Zestaw danych zawierający sumy sprzedaży w ujęciu tygodniowym za 2022 rok w tabeli o nazwie Sales.
Daty transakcji określone przez trzy pola: year, week i sales.
Poprzednie ładowanie, które zostało użyte do utworzenia miary, first_day_of_week, używa funkcji makeweekdate(). Zostanie zwrócona data poniedziałku w tym tygodniu w formacie MM/DD/RRRR.
Aby udowodnić, że zwrócona data wypada w poniedziałek, wyrażenie first_day_of_week zostało zapakowane w funkcję weekday(), pokazującą dzień tygodnia.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
transaction_year
transaction_week
first_day_of_week
week_day
Tabela wynikowa
transaction_year
transaction_week
first_day_of_week
week_day
2022
01
01/03/2022
Pon
2022
02
01/10/2022
Pon
2022
03
01/17/2022
Pon
2022
04
01/24/2022
Pon
2022
05
01/31/2022
Pon
2022
06
02/07/2022
Pon
2022
07
02/14/2022
Pon
Pole first_day_of_week jest tworzone w poprzedniej instrukcji load przy użyciu funkcji makeweekdate(). Parametry transaction_year i transaction_week zostały przekazane jako argumenty funkcji, a parametr dnia pozostawiono pusty.
Następnie funkcja ta łączy i konwertuje te wartości na pole daty oraz zwraca wynik w formacie zmiennej systemowej DateFormat.
Funkcja makeweekdate() wraz z argumentami także została zapakowana w funkcję weekday(), która zwraca pole week_day. Jak widać w powyższej tabeli, pole week_day pokazuje, że te daty rzeczywiście wypadają w poniedziałek (mimo że zmienna FirstWeekDay ustawia niedzielę jako pierwszy dzień tygodnia), ponieważ parametr dnia w funkcji makeweekdate() pozostawiono pusty.
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 sumy sprzedaży w ujęciu tygodniowym za 2022 rok w tabeli o nazwie Sales.
Daty transakcji określone przez trzy pola: year, week i sales.
W tym przykładzie obiekt wykresu zostanie użyty w celu utworzenia miary równoważnej obliczeniom end_of_week z pierwszego przykładu. Miara ta użyje funkcji makeweekdate(), aby zwrócić datę piątku w tym tygodniu w formacie MM/DD/RRRR.
Aby udowodnić, że zwrócona data wypada w piątek, zostaje utworzona druga miara, która zwraca dzień tygodnia.
Pole równoważne end_of_week zostaje utworzone w obiekcie wykresu jako miara przy użyciu funkcji makeweekdate(). Pola transaction_year i transaction_week zostały przekazane jako argumenty roku i tygodnia. Argumentowi dnia przypisano wartość 4.
Następnie funkcja ta łączy i konwertuje te wartości na pole daty oraz zwraca wynik w formacie zmiennej systemowej DateFormat.
Funkcja makeweekdate() wraz z argumentami także została zapakowana w funkcję weekday(), która zwraca obliczenia równoważne obliczeniom pola week_day z pierwszego przykładu. Jak widać w powyższej tabeli, ostatnia kolumna z prawej pokazuje, że te daty rzeczywiście wypadają w piątek.
Przykład 4 — Scenariusz
Przegląd
W tym przykładzie utwórz listę dat zawierających wszystkie piątki 2022 roku.
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania
SET DateFormat='MM/DD/YYYY';
Calendar:
load
*,
weekday(date) as weekday
where year(date)=2022;
load
makeweekdate(2022,recno()-2,4) as date
AutoGenerate 60;
Wyniki
Tabela wynikowa
date
weekday
01/07/2022
Fri
01/14/2022
Fri
01/21/2022
Fri
01/28/2022
Fri
02/04/2022
Fri
02/11/2022
Fri
02/18/2022
Fri
02/25/2022
Fri
03/04/2022
Fri
03/11/2022
Fri
03/18/2022
Fri
03/25/2022
Fri
04/01/2022
Fri
04/08/2022
Fri
04/15/2022
Fri
04/22/2022
Fri
04/29/2022
Fri
05/06/2022
Fri
05/13/2022
Fri
05/20/2022
Fri
05/27/2022
Fri
06/03/2022
Fri
06/10/2022
Fri
06/17/2022
Fri
Jeszcze 27 wierszy
Funkcja makeweekdate() znajduje wszystkie piątki w 2022 roku. Przypisanie parametrowi tygodnia wartości -2 daje pewność, że żadna data nie zostanie przeoczona. Poprzednia instrukcja LOAD dla jasności tworzy dodatkowe pole weekday, aby pokazać, że każda wartość date jest piątkiem.
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ć!