# maketime - Skript- und Diagrammfunktion

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.<br><br>Fehlt die Zahl der Minuten, wird 00 angenommen. |
| ss | Die Sekunde als ganze Zahl.<br><br>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()

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/maketime.htm)

#### Ladeskript und Ergebnisse

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt 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.

Ladeskript

```
SET TimeFormat='h:mm:ss TT';

Transactions:
    Load
        *,
        maketime(transaction_hour, transaction_minute, transaction_second) as transaction_time
        ; 
Load * Inline [
transaction_id, transaction_hour, transaction_minute, transaction_second, transaction_amount, transaction_quantity, customer_id
3750, 18, 43, 30, 12423.56, 23, 2038593
3751, 6, 32, 07, 5356.31, 6, 203521
3752, 12, 09, 16, 15.75, 1, 5646471
3753, 21, 43, 41, 7, 3036491
3754, 17, 55, 22, 21484.21, 1356, 049681
3756, 2, 52, 22, -59.18, 2, 2038593
3757, 9, 25, 23, 3177.4, 21, 203521
];
```

Ergebnisse

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()“

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/maketime.htm)

#### Ladeskript und Ergebnisse

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt 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.

Ladeskript

```
SET TimeFormat='h:mm:ss TT';

Transactions:
    Load
        *,
        time(maketime(transaction_hour, transaction_minute, transaction_second),'h:mm:ss') as transaction_time
        ; 
Load * Inline [
transaction_id, transaction_hour, transaction_minute, transaction_second, transaction_amount, transaction_quantity, customer_id
3750, 18, 43, 30, 12423.56, 23, 2038593
3751, 6, 32, 07, 5356.31, 6, 203521
3752, 12, 09, 16, 15.75, 1, 5646471
3753, 21, 43, 41, 7, 3036491
3754, 17, 55, 22, 21484.21, 1356, 049681
3756, 2, 52, 22, -59.18, 2, 2038593
3757, 9, 25, 23, 3177.4, 21, 203521
];
```

Ergebnisse

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/maketime.htm)

#### Ladeskript und Diagrammformel

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt 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.

Ladeskript

```
SET TimeFormat='h:mm:ss TT';

Transactions:
Load * Inline [
transaction_id, transaction_hour, transaction_minute, transaction_amount, transaction_quantity, customer_id
3750, 18, 43, 12423.56, 23, 2038593
3751, 6, 32, 5356.31, 6, 203521
3752, 12, 09, 15.75, 1, 5646471
3753, 21, 43, 7, 3036491
3754, 17, 55, 21484.21, 1356, 049681
3756, 2, 52, -59.18, 2, 2038593
3757, 9, 25, 3177.4, 21, 203521
];
```

Ergebnisse

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/maketime.htm)

#### Ladeskript und Diagrammformel

Ü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.