# maketime Script- en diagramfunctie

Deze functie retourneert een tijd die is berekend voor het uur hh, de minuut mm en de seconde ss.

Syntaxis:

MakeTime(hh [ , mm [ , ss ] ])

Retourgegevenstypen: dubbele waarde

Argumenten

| Argument | Beschrijving |
| --- | --- |
| hh | Het uur als een geheel getal. |
| mm | De minuut als een geheel getal.<br><br>Als geen minuut is aangegeven, wordt 00 verondersteld. |
| ss | De seconde als een geheel getal.<br><br>Als geen seconde is aangegeven, wordt 00 verondersteld. |

## Wanneer gebruiken

De `maketime()`-functie wordt normaal gesproken in het script voor het genereren van gegevens gebruikt om een tijdveld te genereren. Soms, als het tijdveld wordt afgeleid van invoertekst, kan deze functie worden gebruikt om de tijd op te bouwen met de verschillende componenten.

Deze voorbeelden gebruiken de tijdnotatie `h:mm:ss`. De tijdopmaak wordt opgegeven in de opdracht `SET TimeFormat` boven aan uw load-script voor gegevens. Wijzig de opmaak in de voorbeelden zodat deze in uw behoeften voorziet.

Voorbeelden van functies

| Voorbeeld | Resultaat |
| --- | --- |
| `maketime(22)` | Retourneert 22:00:00. |
| `maketime(22, 17)` | Retourneert 22:17:00. |
| `maketime(22,17,52 )` | Retourneert 22:17:52. |

## Landinstellingen

Tenzij anders aangegeven, wordt in de voorbeelden in dit onderwerp de volgende datumindeling gebruikt: MM/DD/YYYY. De datumopmaak wordt opgegeven in de opdracht `SET DateFormat` in uw script voor het laden van gegevens. De standaard datumindeling is mogelijk anders op uw systeem vanwege landinstellingen en andere factoren. U kunt de indelingen in de voorbeelden wijzigen zodat deze aansluiten op uw behoeften. Of u kunt de indelingen in uw load-script wijzigen zodat ze overeenkomen met deze voorbeelden.

Standaard landinstellingen in toepassingen zijn gebaseerd op de regionale systeeminstellingen van de computer of server waarop Qlik Sense is geïnstalleerd. Als de Qlik Sense-server die u gebruikt is ingesteld op Zweden, gebruikt de editor voor laden van gegevens de Zweedse landinstellingen voor datums, tijd en valuta. Deze landinstellingen voor indelingen zijn niet gerelateerd aan de taal die wordt weergegeven in de Qlik Sense gebruikersinterface. Qlik Sense wordt weergegeven in dezelfde taal als de browser die u gebruikt.

## Voorbeeld 1 – maketime()

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

#### Load-script en resultaten

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling met een set transacties die wordt geladen in de tabel `Transactions`.

* De transactietijden worden ingevoerd in drie velden: `hours`, `minutes` en `seconds`.

* Het veld `transaction_time` wordt gemaakt dat de tijd retourneert met de notatie van de `TimeFormat`-systeemvariabele.

Load-script

```
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
];
```

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* `transaction_hour`

* `transaction_minute`

* `transaction_second`

* `transaction_time`

Resultatentabel

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

Het veld `transaction_time` wordt gemaakt in de voorafgaande load-instructie met behulp van de `maketime()`-functie en geeft de uur-, minuut- en secondevelden door als de argumenten van de functie.

De functie combineert en converteert deze waarden in een tijdveld en retourneert de resultaten met de tijdnotatie van de `TimeFormat`-systeemvariabele.

## Voorbeeld 2 – time()-functie

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

#### Load-script en resultaten

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Dezelfde gegevensset en het scenario uit het eerste voorbeeld.

* Het veld `transaction_time` wordt gemaakt waarmee we de resultaten kunnen bekijken in een 24-uurs tijdnotatie zonder de `TimeFormat`-systeemvariabele aan te passen.

Load-script

```
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
];
```

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* `transaction_hour`

* `transaction_minute`

* `transaction_second`

* `transaction_time`

Resultatentabel

| 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 dit geval is de `maketime()`-functie in de `time()`-functie genest. Het tweede argument van de `time()`-functie stelt de notatie van de `maketime()`-functieresultaten in op de vereiste `h:mm:ss`.

## Voorbeeld 3 – diagramobjectvoorbeeld

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

#### Load-script en diagramuitdrukking

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensset met een set transacties die wordt geladen in de tabel `Transactions`.

* De transactietijden worden ingevoerd in twee velden: `hours` en `minutes`.

* Het veld `transaction_time` wordt gemaakt dat de tijd retourneert met de notatie van de `TimeFormat`-systeemvariabele.

Maak een diagramobjectmeting, `transaction_time`, die een tijd retourneert met de notatie `h:mm:ss TT`.

Load-script

```
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
];
```

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* `transaction_hour`

* `transaction_minute`

Om de `transaction_time` te berekenen, maakt u deze meting:

`=maketime(transaction_hour,transaction_minute)`

Resultatentabel

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

De meting `transaction_time` wordt gemaakt in het diagramobject met behulp van de `maketime()`-functie en passeert de uur- en minuutvelden als functieargumenten.

De functie combineert deze waarden vervolgens en de secondeteller wordt op 00 gezet. Deze waarden worden geconverteerd in een tijdveld en retourneren de resultaten met de notatie van de `TimeFormat`-systeemvariabele.

## Voorbeeld 4 – Scenario

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

#### Load-script en diagramuitdrukking

Overzicht

Maak een kalendergegevensset voor januari 2022, opgesplitst in delen van acht uur.

Load-script

```
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;
```

Resultaten

Resultatentabel

| tijdstempel |
| --- |
| 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 |
| Nog 68 rijen |

De aanvankelijke autogenerate-functie maakt een kalender met alle datums in januari in de tabel tmpCalendar.

Er wordt een tweede tabel gemaakt met drie records. Voor iedere record, wordt recno() – 1 afgetrokken (waarden 0, 1, 2) en het resultaat wordt vermenigvuldigd met 8. Het resultaat is dat dit de waarden 0, 8 16 genereert. Deze waarden worden gebruikt als de uurparameter in een maketime()-functie met minuut- en secondewaarden van 0. Het resultaat is dat de tabel drie tijdvelden bevat: 12:00:00 AM, 8:00:00 AM en 4:00:00 PM.

Deze tabel wordt samengevoegd met de tmpCalendar-tabel. Omdat de twee tabellen geen overeenkomende velden bevatten voor de samenvoeging, worden er aan iedere datumrij tijdrijen toegevoegd. Daardoor wordt iedere datumrij nu drie keer met iedere tijdwaarde herhaald.

Als laatste wordt de tabel Kalender gemaakt vanuit een resident-load van de tmpCalendar-tabel. De datum- en tijdvelden worden aaneengeschakeld en in de timestamp()-functie verpakt om het tijdstempelveld te maken.

De tmpCalendar-tabel wordt dan verwijderd.