# monthstart - Script- en diagramfunctie

Deze functie retourneert een waarde die overeenkomt met een tijdstempel van de eerste milliseconde van de eerste dag van de maand die date bevat. De standaarduitvoernotatie is de DateFormat die is ingesteld in het script.

Syntaxis:

MonthStart(date[, period\_no])

Retourgegevenstypen: dubbele waarde

Diagram van de `monthstart()`-functie

Diagram van de `monthstart()`-functie

Diagram van de `monthstart()`monthstart()-functie ![Voorbeelddiagram dat laat zien hoe de elementen van de functie samenwerken om het resultaat te retourneren.](https://help.qlik.com/nl-NL/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthstart-general.png)

De `monthstart()`-functie bepaalt in welke maand de datum valt. Hij retourneert vervolgens een tijdstempel, in datumnotatie, voor de eerste milliseconde van die maand.

Argumenten

| Argument | Beschrijving |
| --- | --- |
| date | De te evalueren datum of tijdstempel. |
| period\_no | period\_no is een geheel getal dat, indien het 0 is of wordt weggelaten, de maand aangeeft die date bevat. Negatieve waarden in period\_no geven voorafgaande maanden aan en positieve waarden geven volgende maanden aan. |

## Wanneer gebruiken

De functie `monthstart()` wordt doorgaans gebruikt als onderdeel van een uitdrukking als de gebruiker wil dat in de berekening het deel van de maand wordt gebruikt dat al is geweest. Hij kan bijvoorbeeld worden gebruikt om de rente te berekenen die in een maand tot een bepaalde datum is opgebouwd.

Voorbeelden van functies

| Voorbeeld | Resultaat |
| --- | --- |
| `monthstart('10/19/2001')` | Retourneert 10/01/2001. |
| `monthstart('10/19/2001', -1)` | Retourneert 09/01/2001. |

## 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 – geen aanvullende argumenten

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthstart.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 2022 die wordt geladen in de tabel `Transactions`.

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

* Het maken van een veld, `start_of_month`, dat een tijdstempel voor het begin van de maand retourneert waarin de transactie plaatsvond.

Load-script

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

Transactions:
    Load
        *,
        monthstart(date) as start_of_month,
        timestamp(monthstart(date)) as start_of_month_timestamp
        ;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

Resultaten

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

* `date`

* `start_of_month`

* `start_of_month_timestamp`

Resultatentabel

| date | start\_of\_month | start\_of\_month\_timestamp |
| --- | --- | --- |
| 1/7/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
| 1/19/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
| 2/5/2022 | 02/01/2022 | 2/1/2022 12:00:00 AM |
| 2/28/2022 | 02/01/2022 | 2/1/2022 12:00:00 AM |
| 3/16/2022 | 03/01/2022 | 3/1/2022 12:00:00 AM |
| 4/1/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
| 5/7/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 5/16/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 6/15/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
| 6/26/2022 | 07/01/2022 | 6/1/2022 12:00:00 AM |
| 7/9/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
| 7/22/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
| 7/23/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
| 7/27/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
| 8/2/2022 | 08/01/2022 | 8/1/2022 12:00:00 AM |
| 8/8/2022 | 08/01/2022 | 8/1/2022 12:00:00 AM |
| 8/19/2022 | 08/01/2022 | 8/1/2022 12:00:00 AM |
| 9/26/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
| 10/14/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
| 10/29/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |

Het veld '`start_of_month`' wordt gemaakt in de voorafgaande load-instructie met behulp van de functie `monthstart()` en geeft het datumveld door als het argument van de functie.

De functie `monthstart()` identificeert in welke maand de datumwaarde valt en retourneert een tijdstempel voor de eerste milliseconde van die maand.

Diagram van `monthstart()`-functie, voorbeeld zonder aanvullende argumenten

Diagram van `monthstart()`-functie, voorbeeld zonder aanvullende argumenten

Diagram van `monthstart()`monthstart()-functie, voorbeeld zonder aanvullende argumenten![Diagram met de resultaten van het gebruik van de monthstart-functie om de maand te bepalen waarin een transactie heeft plaatsgevonden.](https://help.qlik.com/nl-NL/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthstart-example-no-add-arg.png)

Transactie 8192 vond plaats op 16 maart. De functie `monthstart()` retourneert de eerste milliseconde van die maand, 1 maart om 12:00:00 AM.

## Voorbeeld 2 – period\_no

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthstart.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 maken van een veld, `previous_month_start`, dat een tijdstempel voor het begin van de maand retourneert voordat de transactie plaatsvond.

Load-script

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

Transactions:
    Load
        *,
        monthstart(date,-1) as previous_month_start,
        timestamp(monthstart(date,-1)) as previous_month_start_timestamp
        ;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

Resultaten

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

* `date`

* `previous_month_start`

* `previous_month_start_timestamp`

Resultatentabel

| date | previous\_month\_start | previous\_month\_start\_timestamp |
| --- | --- | --- |
| 1/7/2022 | 12/01/2021 | 12/1/2021 12:00:00 AM |
| 1/19/2022 | 12/01/2021 | 12/1/2021 12:00:00 AM |
| 2/5/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
| 2/28/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
| 3/16/2022 | 02/01/2022 | 2/1/2022 12:00:00 AM |
| 4/1/2022 | 03/01/2022 | 3/1/2022 12:00:00 AM |
| 5/7/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
| 5/16/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
| 6/15/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 6/26/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 7/9/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
| 7/22/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
| 7/23/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
| 7/27/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
| 8/2/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
| 8/8/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
| 8/19/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
| 9/26/2022 | 08/01/2022 | 8/1/2022 12:00:00 AM |
| 10/14/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
| 10/29/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |

In dit geval, omdat een `period_no` van -1 werd gebruikt als het offset-argument in de `monthstart()`-functie, identificeert de functie eerst de maand waarin de transacties plaatsvinden. Het verschuift dan naar een maand eerder en identificeert de eerste milliseconde van die maand.

Diagram van `monthstart()`-functie, voorbeeld period\_no

Diagram van `monthstart()`-functie, voorbeeld period\_no

Diagram van `monthstart()`monthstart()-functie, voorbeeld period\_no![Diagram met de resultaten van het gebruik van de monthstart-functie om de maand te bepalen waarin een transactie heeft plaatsgevonden.](https://help.qlik.com/nl-NL/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthstart-example-period-no.png)

Transactie 8192 vond plaats op 16 maart. De `monthstart()`-functie stelt vast dat de maand voor de transactie februari was. Vervolgens wordt de eerste milliseconde van die maand geretourneerd: 1 februari om 12:00:00 AM.

## Voorbeeld 3 – diagramobjectvoorbeeld

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

#### Load-script en diagramuitdrukking

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 scenario als het eerste voorbeeld.

In dit voorbeeld wordt de ongewijzigde gegevensset echter in de applicatie geladen. De berekening die een tijdstempel retourneert voor het begin van de maand waarin de transacties plaatsvonden is gemaakt als meting in een diagramobject van de applicatie.

Load-script

```

SET DateFormat='MM/DD/YYYY';
 
Transactions:
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie: `date`.

Maak de volgende metingen om de begindatum van de maand waarin een transactie plaatsvindt te berekenen:

* `=monthstart(date)`

* `=timestamp(monthstart(date))`

Resultatentabel

| date | =monthstart(date) | =timestamp(monthstart(date)) |
| --- | --- | --- |
| 10/14/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
| 10/29/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
| 9/26/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
| 8/2/2022 | 08/01/2022 | 8/1/2022 12:00:00 AM |
| 8/8/2022 | 08/01/2022 | 8/1/2022 12:00:00 AM |
| 8/19/2022 | 08/01/2022 | 8/1/2022 12:00:00 AM |
| 7/9/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
| 7/22/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
| 7/23/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
| 7/27/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
| 6/15/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
| 6/26/2022 | 06/01/2022 | 6/1/2022 12:00:00 AM |
| 5/7/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 5/16/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 4/1/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
| 3/16/2022 | 03/01/2022 | 3/1/2022 12:00:00 AM |
| 2/5/2022 | 02/01/2022 | 2/1/2022 12:00:00 AM |
| 2/28/2022 | 02/01/2022 | 2/1/2022 12:00:00 AM |
| 1/7/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
| 1/19/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |

De meting `start_of_month` wordt gemaakt in het diagramobject met behulp van de functie `monthstart()` en geeft het veld door als het argument van de functie.

De functie `monthstart()` identificeert in welke maand de datumwaarde valt en retourneert een tijdstempel voor de eerste milliseconde van die maand.

Diagram van `monthstart()`-functie, diagramobjectvoorbeeld

Diagram van `monthstart()`-functie, diagramobjectvoorbeeld

Diagram van `monthstart()`monthstart()-functie, diagramobjectvoorbeeld![Diagram met de resultaten van het gebruik van de monthstart-functie om de maand te bepalen waarin een transactie heeft plaatsgevonden.](https://help.qlik.com/nl-NL/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthstart-example-chart-object.png)

Transactie 8192 vond plaats op 16 maart. De `monthstart()`-functie identificeert dat de transactie in maart heeft plaatsgevonden retourneert de eerste milliseconde van die maand, 1 maart om 12:00:00 AM.

## Voorbeeld 4 – Scenario

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthstart.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 leningsaldo's die wordt geladen in de tabel Loans.

* Gegevens bestaan uit lening-id's, het saldo aan het begin van de maand en de enkelvoudige rente die op iedere lening per jaar wordt berekend.

De eindgebruiker wil een diagramobject dat per lening-id de huidige rente weergeeft die is opgebouwd op elke lening in de maand tot heden.

Load-script

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

Loans:
Load
*
Inline
[
loan_id,start_balance,rate
8188,$10000.00,0.024
8189,$15000.00,0.057
8190,$17500.00,0.024
8191,$21000.00,0.034
8192,$90000.00,0.084
];
```

Resultaten

Doe het volgende:

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

   * loan\_id

   * start\_balance

2. Maak nu een meting om de opgebouwde rente te berekenen:

   =start\_balance\*(rate\*(today(1)-monthstart(today(1)))/365)

3. Stel de Getalnotatie van de meting in op Geld.

Resultatentabel

| loan\_id | start\_balance | =start\_balance\*(rate\*(today(1)-monthstart(today(1)))/365) |
| --- | --- | --- |
| 8188 | $10000.00 | $16.44 |
| 8189 | $15000.00 | $58.56 |
| 8190 | $17500.00 | $28.77 |
| 8191 | $21000.00 | $48.90 |
| 8192 | $90000.00 | $517.81 |

De functie monthstart() gebruikt de datum van vandaag als enige argument en retourneert de begindatum van de huidige maand. Door dat resultaat af te trekken van de huidige datum, retourneert de uitdrukking het aantal dagen dat in deze maand tot nu toe is verstreken.

Deze waarde wordt vervolgens vermenigvuldigd met het rentepercentage en gedeeld door 365 om het effectieve rentepercentage voor deze periode te retourneren. Het resultaat wordt vervolgens vermenigvuldigd met het beginsaldo van de lening om de rente terug te betalen die deze maand tot nu toe is opgebouwd.