# makedate Script- en diagramfunctie

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: dubbele waarde

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 gebruikt u makedate

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/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. Ga voor meer informatie naar [Regionale instellingen voor applicaties en scripts aanpassen](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Standaard landinstellingen in applicaties 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.

Als u een applicatie-ontwikkelaar bent, kunt u de standaardregio instellen voor applicaties die u maakt. Ga voor meer informatie naar [Instellen van uw voorkeur voor regionale instellingen voor het maken van apps en scripts in Qlik Cloud Analyse](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

## Voorbeeld 1 – Basisvoorbeeld

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/makedate.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 voor 2018 die wordt geladen in een tabel met de naam `Transactions`.

* Het datumveld opgegeven in de `DateFormat`-systeemvariabele (MM/DD/YYYY) indeling.

* Het veld `transaction_date` wordt gemaakt dat een datum retourneert met de notatie mm/dd/jjjj.

Load-script

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        makedate(transaction_year, transaction_month, transaction_day) as transaction_date
        ; 
Load * Inline [
transaction_id, transaction_year, transaction_month, transaction_day, transaction_amount, transaction_quantity, customer_id
3750, 2018, 08, 30, 12423.56, 23, 2038593
3751, 2018, 09, 07, 5356.31, 6, 203521
3752, 2018, 09, 16, 15.75, 1, 5646471
3753, 2018, 09, 22, 1251, 7, 3036491
3754, 2018, 09, 22, 21484.21, 1356, 049681
3756, 2018, 09, 22, -59.18, 2, 2038593
3757, 2018, 09, 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_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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/makedate.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_date` wordt gemaakt met de notatie dd/mm/jjjj zonder de `DateFormat`-systeemvariabele aan te passen.

Load-script

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        date(makedate(transaction_year, transaction_month, transaction_day), ‘DD/MM/YYYY’) as transaction_date
        ; 
Load * Inline [
transaction_id, transaction_year, transaction_month, transaction_day, transaction_amount, transaction_quantity, customer_id
3750, 2018, 08, 30, 12423.56, 23, 2038593
3751, 2018, 09, 07, 5356.31, 6, 203521
3752, 2018, 09, 16, 15.75, 1, 5646471
3753, 2018, 09, 22, 1251, 7, 3036491
3754, 2018, 09, 22, 21484.21, 1356, 049681
3756, 2018, 09, 22, -59.18, 2, 2038593
3757, 2018, 09, 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_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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/makedate.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 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.

Load-script

```
SET DateFormat='MM/DD/YYYY';

Transactions:
Load * Inline [
transaction_id, transaction_year, transaction_month, transaction_amount, transaction_quantity, customer_id
3750, 2018, 08, 12423.56, 23, 2038593
3751, 2018, 09, 5356.31, 6, 203521
3752, 2018, 09, 15.75, 1, 5646471
3753, 2018, 09, 1251, 7, 3036491
3754, 2018, 09, 21484.21, 1356, 049681
3756, 2018, 09, -59.18, 2, 2038593
3757, 2018, 09, 3177.4, 21, 203521
];
```

Resultaten

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

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

#### Load-script en diagramuitdrukking

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.