Deze functie retourneert een datum die is berekend voor het jaar YYYY, de maand MM en de dag DD.
Syntaxis:
MakeDate(YYYY [ , MM [ , DD ] ])
Retourgegevenstypen: dual
Argumenten
Argument
Beschrijving
YYYY
Het jaartal als een geheel getal.
MM
De maand als een geheel getal. Als geen maand is vermeld, wordt 1 (januari) verondersteld.
DD
De dag als een geheel getal. Als geen dag is vermeld, wordt 1 (de 1ste) verondersteld.
Wanneer gebruiken
De makedate()-functie wordt normaal gesproken in het script voor gegevensgenerering om een kalender te genereren. Dit kan ook worden gebruikt wanneer het gegevensveld niet rechtstreeks als datum beschikbaar is, maar wat transformaties behoeft om jaar-, maand- en dagcomponenten te extraheren.
Deze voorbeelden gebruiken de datumopmaak MM/DD/YYYY. De datumopmaak wordt opgegeven in de opdracht SET DateFormat boven aan uw load-script voor gegevens. Wijzig de opmaak in de voorbeelden zodat deze in uw behoeften voorziet.
Voorbeelden van functies
Voorbeeld
Resultaat
makedate(2012)
Retourneert 01/01/2012.
makedate(12)
Retourneert 01/01/2012.
makedate(2012,12)
Retourneert 12/01/2012.
makedate(2012,2,14)
Retourneert 02/14/2012.
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. Ga voor meer informatie naar Regionale instellingen voor apps en scripts aanpassen.
Standaard landinstellingen van de app zijn gebaseerd op het gebruikersprofiel. Deze landinstellingen voor indelingen zijn niet gerelateerd aan de taal die wordt weergegeven in de gebruikersinterface van Qlik Cloud. Qlik Cloud wordt weergegeven in dezelfde taal als de browser die u gebruikt.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
transaction_year
transaction_month
transaction_day
transaction_date
Resultatentabel
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
Het veld transaction_date wordt gemaakt in de voorafgaande load-instructie met behulp van de makedate()-functie en geeft de jaar-, maand- en dagvelden door als de argumenten van de functie.
De functie combineert en converteert deze waarden in een datumveld en retourneert de resultaten met de notatie van de DateFormat-systeemvariabele.
Voorbeeld 2 – Aangepaste DateFormat
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_date wordt gemaakt met de notatie dd/mm/jjjj zonder de DateFormat-systeemvariabele aan te passen.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
transaction_year
transaction_month
transaction_day
transaction_date
Resultatentabel
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 dit geval is de makedate()-functie in de date()-functie genest. Het tweede argument van de date()-functie stelt de datumnotatie van de makedate()-functieresultaten in op de vereiste dd/mm/jjjj.
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 voor 2018 die wordt geladen in een tabel met de naam Transactions.
De transactiedatums worden ingevoerd in twee velden: year en month.
Maak een diagramobjectmeting, transaction_date, die een datum retourneert met de notatie mm/dd/jjjj.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
year
month
Om de transaction_date vast te stellen, maakt u deze meting:
=makedate(transaction_year,transaction_month)
Resultatentabel
transaction_year
transaction_month
transaction_date
2018
08
08/01/2018
2018
09
09/01/2018
De meting transaction_date wordt gemaakt in het diagramobject met behulp van de makedate()-functie en passeert de jaar- en maandvelden als functieargumenten.
De functie combineert deze waarden vervolgens, evenals de aangenomen dagwaarde van 01. Deze waarden worden geconverteerd in een datumveld en retourneren de resultaten met de indeling van de DateFormat-systeemvariabele.
Voorbeeld 4 – Scenario
Overzicht
Maak een kalendergegevensset voor het kalenderjaar 2022.
Load-script
SET DateFormat='MM/DD/YYYY';
Calendar:
load
*
where year(date)=2022;
load
date(recno()+makedate(2021,12,31)) as date
AutoGenerate 400;
Resultaten
Resultatentabel
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
Nog 340 rijen
De makedate()-functie maakt een datumwaarde voor 31 december 2021. De recno()-functie levert het recordnummer van de huidige record die in de tabel wordt geladen, beginnend bij 1. Daarom heeft de eerste record de datum 1 januari 2022. Iedere achtereenvolgende recno() verhoogt deze datum met 1. Deze uitdrukking is verpakt in een date()-functie om de waarde om te zetten in een datum. Dit proces wordt 400 keer herhaald door de autogenerate-functie. Als laatste kan een where-voorwaarde worden gebruikt om alleen datums uit het jaar 2022. Dit kan door het gebruik van een voorafgaande lading. Dit script genereert een kalender met iedere datum in 2022.
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!