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: dual
Argumenten
Argument
Beschrijving
hh
Het uur als een geheel getal.
mm
De minuut als een geheel getal.
Als geen minuut is aangegeven, wordt 00 verondersteld.
ss
De seconde als een geheel getal.
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 tijdnotatie wordt opgegeven in de opdracht SET TimeFormat boven aan uw script voor het laden van 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/JJJJ. 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 apps 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 gebruikersinterface van Qlik Sense. Qlik Sense wordt weergegeven in dezelfde taal als de browser die u gebruikt.
Voorbeeld 1 – maketime()
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensset 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.
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
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
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.
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
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
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.
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
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.
Was deze pagina nuttig?
Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!