Die Funktion liefert ein Datum bestehend aus der angegebenen Jahreszahl YYYY, dem Monat MM und dem Wochentag DD.
Syntax:
MakeDate(YYYY [ , MM [ , DD ] ])
Rückgabe Datentyp: dual
Argumente
Argument
Beschreibung
YYYY
Das Jahr als ganze Zahl.
MM
Der Monat als ganze Zahl. Ist kein Monat angegeben, wird 1 (Januar) angenommen.
DD
Der Tag als ganze Zahl. Ist kein Tag angegeben, wird 1 (1.) angenommen.
Verwendung
Die Funktion makedate() wird in der Regel im Skript zur Datengenerierung für die Generierung eines Kalenders verwendet. Sie kann auch verwendet werden, wenn das Datumsfeld nicht direkt als Datum verfügbar ist, sondern Umwandlungen benötigt, um Jahres-, Monats- und Tageskomponenten zu extrahieren.
In diesen Beispielen wird das Datumsformat MM/TT/JJJJ verwendet. Das Datumsformat wird im Befehl SET DateFormat oben in Ihrem Datenladeskript angegeben. Ändern Sie das Format in den Beispielen entsprechend Ihren Anforderungen.
Funktionsbeispiele
Beispiel
Ergebnis
makedate(2012)
Gibt 01/01/2012 zurück.
makedate(12)
Gibt 01/01/2012 zurück.
makedate(2012,12)
Gibt 12/01/2012 zurück.
makedate(2012,2,14)
Gibt 02/14/2012 zurück.
Regionaleinstellungen
Sofern nicht anders angegeben, verwenden die Beispiele in diesem Thema das folgende Datumsformat: MM/TT/JJJJ. Das Datumsformat wird in der Anweisung SET DateFormat in Ihrem Datenladeskript angegeben. Das Standarddatumsformat in Ihrem System kann aufgrund Ihrer regionalen Einstellungen und anderer Faktoren abweichen. Sie können die Formate in den Beispielen unten Ihren Anforderungen entsprechend ändern. Sie können auch die Formate in Ihrem Ladeskript entsprechend den Beispielen ändern.
Die standardmäßigen regionalen Einstellungen in Apps basieren auf den regionalen Systemeinstellungen der Computer oder Server, auf denen Qlik Sense installiert ist. Wenn der Qlik Sense-Server, auf den Sie zugreifen, auf Schweden festgelegt ist, verwendet der Dateneditor die schwedischen regionalen Einstellungen für Datums-, Uhrzeit- und Währungsangaben. Diese Einstellungen im regionalen Format hängen nicht mit der Sprache zusammen, die in der Benutzeroberfläche von Qlik Sense angezeigt wird. Qlik Sense wird in der gleichen Sprache wie der von Ihnen verwendete Browser angezeigt.
Beispiel 1 – einfaches Beispiel
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Ein Datensatz enthält eine Reihe von Transaktionen für 2018 und wird in eine Tabelle namens Transactions geladen.
Das Datumsfeld wird im Format der Systemvariablen DateFormat (MM/TT/JJJJ) bereitgestellt.
Erstellung eines Felds transaction_date, das ein Datum im Format MM/TT/JJJJ zurückgibt
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
transaction_year
transaction_month
transaction_day
transaction_date
Ergebnistabelle
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
Das Feld transaction_date wird im vorangehenden load-Befehl erstellt, indem die Funktion makedate() verwendet und die Felder für Jahr, Monat und Tag als Argumente der Funktion übergeben werden.
Die Funktion kombiniert diese Werte dann und konvertiert sie in ein Datumsfeld. Die Ergebnisse werden im Format der Systemvariablen DateFormat zurückgegeben.
Beispiel 2 – Geändertes „DateFormat“
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel.
Es wird ein Feld transaction_date im Format TT/MM/JJJJ erstellt, ohne die Systemvariable DateFormat zu ändern.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
transaction_year
transaction_month
transaction_day
transaction_date
Ergebnistabelle
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
In diesem Fall ist die Funktion makedate() innerhalb der Funktion date() verschachtelt. Das zweite Argument der Funktion date() legt das Format der Funktionsergebnisse von makedate() auf das erforderliche TT/MM/JJJJ fest.
Beispiel 3 – Diagrammobjektbeispiel
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Datensatz mit einer Reihe von Transaktionen für 2018, der in eine Tabelle namens Transactions geladen wird
Transaktionsdatumswerte, die in zwei Feldern bereitgestellt werden: year und month
Erstellung einer Diagrammobjektkennzahl, transaction_date, die ein Datum im Format MM/TT/JJJJ zurückgibt
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
year
month
Um das transaction_date zu bestimmen, erstellen Sie die folgende Kennzahl:
=makedate(transaction_year,transaction_month)
Ergebnistabelle
transaction_year
transaction_month
transaction_date
2018
08
08/01/2018
2018
09
09/01/2018
Die Kennzahl transaction_date wird im Diagrammobjekt erstellt, indem die Funktion makedate() verwendet und die Felder für Jahr und Monat als Argumente der Funktion übergeben werden.
Die Funktion kombiniert dann diese Werte, ebenso wie den angenommenen Tageswert von 01. Diese Werte werden dann in ein Datumsfeld konvertiert. Die Ergebnisse werden im Format der Systemvariablen DateFormat zurückgegeben.
Beispiel 4 – Szenario
Übersicht
Erstellen Sie einen Kalenderdatensatz für das Kalenderjahr 2022.
Ladeskript
SET DateFormat='MM/DD/YYYY';
Calendar:
load
*
where year(date)=2022;
load
date(recno()+makedate(2021,12,31)) as date
AutoGenerate 400;
Ergebnisse
Ergebnistabelle
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
+ 340 weitere Zeilen
Die Funktion makedate() erstellt einen Datumswert für den 31. Dezember 2021. Die Funktion recno() stellt die Datensatznummer des aktuellen Datensatzes bereit, der in die Tabelle geladen wird, beginnend mit 1. Daher hat der erste Datensatz das Datum 1. Januar 2022. Für jede darauffolgende recno() wird dieses Datum um 1 erhöht. Diese Formel wird in eine Funktion date() eingeschlossen, um den Wert in ein Datum zu konvertieren. Dieser Vorgang wird von der Funktion autogenerate 400 Mal wiederholt. Abschließend kann mit einer vorangehenden load-Anweisung eine where-Bedingung verwendet werden, um nur Datumswerte des Jahres 2022 zu laden. Mir diesem Skript wird ein Kalender generiert, der jedes Datum im Jahr 2022 enthält.
Hat diese Seite Ihnen geholfen?
Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!