Die Funktion liefert eine Zeit bestehend aus der angegebenen Stunde hh, der Minute mm und der Sekunde ss.
Syntax:
MakeTime(hh [ , mm [ , ss ] ])
Rückgabe Datentyp: dual
Argumente
Argument
Beschreibung
hh
Die Stunde als ganze Zahl.
mm
Die Minute als ganze Zahl.
Fehlt die Zahl der Minuten, wird 00 angenommen.
ss
Die Sekunde als ganze Zahl.
Fehlt die Zahl der Sekunden, wird 00 angenommen.
Verwendung
Die Funktion maketime() wird in der Regel im Skript zur Datengenerierung für die Generierung eines Uhrzeitfelds verwendet. Wenn das Uhrzeitfeld aus einem Eingabefeld abgeleitet wird, kann diese Funktion verwendet werden, um die Uhrzeit anhand ihrer Komponenten zu konstruieren.
In diesen Beispielen wird das Uhrzeitformat h:mm:ss verwendet. Das Uhrzeitformat wird im Befehl SET TimeFormat oben in Ihrem Datenladeskript angegeben. Ändern Sie das Format in den Beispielen entsprechend Ihren Anforderungen.
Funktionsbeispiele
Beispiel
Ergebnis
maketime(22)
Gibt 22:00:00 zurück.
maketime(22, 17)
Gibt 22:17:00 zurück.
maketime(22,17,52 )
Gibt 22:17:52 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 – maketime()
Ü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, der in eine Tabelle namens Transactions geladen wird
Transaktionszeiten, die in drei Feldern bereitgestellt werden: hours, minutes und seconds.
Erstellung eines Felds transaction_time, das die Uhrzeit im Format der Systemvariablen TimeFormat 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_hour
transaction_minute
transaction_second
transaction_time
Ergebnistabelle
transaction_hour
transaction_minute
transaction_second
transaction_time
2
52
22
2:52:22 AM
6
32
07
6:32:07 AM
9
25
23
9:25:23 AM
12
09
16
12:09:16 PM
17
55
22
5:55:22 PM
18
43
30
6:43:30 PM
21
43
41
9:43:41 PM
Das Feld transaction_time wird im vorangehenden load-Befehl erstellt, indem die Funktion maketime() verwendet und die Felder für Stunde, Minute und Sekunde als Argumente der Funktion übergeben werden.
Die Funktion kombiniert diese Werte dann und konvertiert sie in ein Uhrzeitfeld. Die Ergebnisse werden im Uhrzeitformat der Systemvariablen TimeFormat zurückgegeben.
Beispiel 2 – Funktion „time()“
Ü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_time erstellt, mit dem die Ergebnisse im 24-Stunden-Uhrzeitformat angezeigt werden können, ohne die Systemvariable TimeFormat zu verä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_hour
transaction_minute
transaction_second
transaction_time
Ergebnistabelle
transaction_hour
transaction_minute
transaction_second
transaction_time
2
52
22
2:52:22
6
32
07
6:32:07
9
25
23
9:25:23
12
09
16
12:09:16
17
55
22
17:55:22
18
43
30
18:43:30
21
43
41
21:43:41
In diesem Fall ist die Funktion maketime() innerhalb der Funktion time() verschachtelt. Das zweite Argument der Funktion time() legt das Format der Funktionsergebnisse von maketime() auf das erforderliche h:mm:ss 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, der in eine Tabelle namens Transactions geladen wird
Transaktionszeiten, die in zwei Feldern bereitgestellt werden: hours und minutes
Erstellung eines Felds transaction_time, das die Uhrzeit im Format der Systemvariablen TimeFormat zurückgibt
Erstellen Sie eine Diagrammobjektkennzahl,transaction_time , die eine Uhrzeit im Format h:mm:ss TT 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_hour
transaction_minute
Um die transaction_time zu berechnen, erstellen Sie die folgende Kennzahl:
=maketime(transaction_hour,transaction_minute)
Ergebnistabelle
transaction_hour
transaction_minute
=maketime(transaction_hour, transaction_minute)
2
52
2:52:00 AM
6
32
6:32:00 AM
9
25
9:25:00 AM
12
09
12:09:00 PM
17
55
5:55:00 PM
18
43
6:43:00 PM
21
43
9:43:00 PM
Die Kennzahl transaction_time wird im Diagrammobjekt erstellt, indem die Funktion maketime() verwendet und die Felder für Stunde und Minute als Argumente der Funktion übergeben werden.
Die Funktion kombiniert dann diese Werte, und für Sekunden wird 00 angenommen. Diese Werte werden dann in ein Uhrzeitfeld konvertiert. Die Ergebnisse werden im Format der Systemvariablen TimeFormat zurückgegeben.
Beispiel 4 – Szenario
Übersicht
Erstellen Sie einen Kalenderdatensatz für den Monat Januar 2022, unterteilt in 8-Stunden-Inkremente.
Ladeskript
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';
tmpCalendar:
load
*
where year(date)=2022;
load
date(recno()+makedate(2021,12,31)) as date
AutoGenerate 31;
Left join(tmpCalendar)
load
maketime((recno()-1)*8,00,00) as time
autogenerate 3;
Calendar:
load
timestamp(date + time) as timestamp
resident tmpCalendar;
drop table tmpCalendar;
Ergebnisse
Ergebnistabelle
Zeitstempel
1/1/2022 12:00:00 AM
1/1/2022 8:00:00 AM
1/1/2022 4:00:00 PM
1/2/2022 12:00:00 AM
1/2/2022 8:00:00 AM
1/2/2022 4:00:00 PM
1/3/2022 12:00:00 AM
1/3/2022 8:00:00 AM
1/3/2022 4:00:00 PM
1/4/2022 12:00:00 AM
1/4/2022 8:00:00 AM
1/4/2022 4:00:00 PM
1/5/2022 12:00:00 AM
1/5/2022 8:00:00 AM
1/5/2022 4:00:00 PM
1/6/2022 12:00:00 AM
1/6/2022 8:00:00 AM
1/6/2022 4:00:00 PM
1/7/2022 12:00:00 AM
1/7/2022 8:00:00 AM
1/7/2022 4:00:00 PM
1/8/2022 12:00:00 AM
1/8/2022 8:00:00 AM
1/8/2022 4:00:00 PM
1/9/2022 12:00:00 AM
+ 68 weitere Zeilen
Die anfängliche Funktion autogenerate erstellt einen Kalender mit allen Datumswerten im Januar in einer Tabelle namens tmpCalendar.
Eine zweite Tabelle mit drei Datensätzen wird erstellt. Für jeden Datensatz wird recno() – 1 mit den Werten 0, 1 und 2 verwendet, und das Ergebnis wird mit 8 multipliziert. Als Ergebnis werden die Werte 0, 8 und 16 generiert. Diese Werte werden als Stundenparameter in einer Funktion maketime() verwendet. Die Minuten- und Sekundenwerte sind 0. Als Ergebnis enthält die Tabelle drei Uhrzeitfelder: 12:00:00 AM, 8:00:00 AM und 4:00:00 PM.
Diese Tabelle wird mit der Tabelle tmpCalendar verknüpft. Da keine übereinstimmenden Felder zwischen den beiden Feldern für den Join vorhanden sind, werden die Uhrzeitzeilen zu jeder Datumszeile hinzugefügt. Als Ergebnis wird jede Datumszeile für die einzelnen Uhrzeitwerte dreimal wiederholt.
Abschließend wird die Kalendertabelle über einen Resident Load der Tabelle tmpCalendar erstellt. Die Datums- und Uhrzeitfelder werden verkettet und in der Funktion timestamp() eingeschlossen, um das Zeitstempelfeld zu bilden.
Dann wird die Tabelle tmpCalendar gelöscht.
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!