# monthstart - Skript- und Diagrammfunktion

Diese Funktion liefert den Zeitstempel der ersten Millisekunde des ersten Tages des Monats, in dem date liegt. Das Ergebnis wird entsprechend dem im Skript definierten DateFormat formatiert.

Syntax:

MonthStart(date[, period\_no])

Rückgabe Datentyp: dual

Diagramm der Funktion `monthstart()`

Diagramm der Funktion `monthstart()`

Diagramm der Funktion `monthstart()`monthstart() ![Das Beispieldiagramm zeigt, wie die Elemente der Funktion zusammenwirken, um das Ergebnis zurückzugeben.](https://help.qlik.com/de-DE/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthstart-general.png)

Die Funktion `monthstart()` bestimmt, in welchen Monat das Datum fällt. Sie gibt dann einen Zeitstempel im Datumsformat für die erste Millisekunde dieses Monats zurück.

Argumente

| Argument | Beschreibung |
| --- | --- |
| date | Datum oder Zeitstempel für die Evaluierung. |
| period\_no | period\_no ist eine ganze Zahl, die beim Weglassen von 0 den Monat liefert, der date enthält. Negative Werte von period\_no stehen für vorangehende, positive Werte für nachfolgende Monate. |

## Verwendung

Die Funktion `monthstart()` wird in der Regel als Teil einer Formel verwendet, wenn in der Berechnung der Teil des Monats verwendet werden soll, der bereits verstrichen ist. Zum Beispiel kann sie verwendet werden, um die Zinsen zu berechnen, die in einem Monat bis zu einem bestimmten Datum aufgelaufen sind.

Funktionsbeispiele

| Beispiel | Ergebnis |
| --- | --- |
| `monthstart('10/19/2001')` | Liefert 10/01/2001. |
| `monthstart('10/19/2001', -1)` | Liefert 09/01/2001. |

## Regionaleinstellungen

Sofern nicht anders angegeben, verwenden die Beispiele in diesem Thema das folgende Datumsformat: MM/TT/JJJJ. Das Datumsformat wird in der Anweisung `SET DateFormat` in Ihrem Datenladeskript angegeben. Das Standarddatumsformat in Ihrem System kann aufgrund Ihrer regionalen Einstellungen und anderer Faktoren abweichen. Sie können die Formate in den Beispielen unten Ihren Anforderungen entsprechend ändern. Sie können auch die Formate in Ihrem Ladeskript entsprechend den Beispielen ändern.

Die standardmäßigen regionalen Einstellungen in Apps basieren auf den regionalen Systemeinstellungen der Computer oder Server, auf denen Qlik Sense installiert ist. Wenn der Qlik Sense-Server, auf den Sie zugreifen, auf Schweden festgelegt ist, verwendet der Dateneditor die schwedischen regionalen Einstellungen für Datums-, Uhrzeit- und Währungsangaben. Diese Einstellungen im regionalen Format hängen nicht mit der Sprache zusammen, die in der Benutzeroberfläche von Qlik Sense angezeigt wird. Qlik Sense wird in der gleichen Sprache wie der von Ihnen verwendete Browser angezeigt.

## Beispiel 1 – keine zusätzlichen Argumente

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

#### Ladeskript und Ergebnisse

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Ein Datensatz enthält eine Reihe von Transaktionen für 2022 und wird in eine Tabelle namens `Transactions` geladen.

* Das Datumsfeld wird im Format der Systemvariablen `DateFormat` (MM/TT/JJJJ) bereitgestellt.

* Es wird ein Feld `start_of_month` erstellt, das einen Zeitstempel für den Start des Monats zurückgibt, in dem die Transaktionen stattfanden.

Ladeskript

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

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

* `date`

* `start_of_month`

* `start_of_month_timestamp`

Ergebnistabelle

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

Das Feld `start_of_month` wird im vorangehenden load-Befehl erstellt, indem die Funktion `monthstart()` verwendet und das Datumsfeld als Argument der Funktion übergeben wird.

Die Funktion `monthstart()` identifiziert, in welchen Monat der Datumswert fällt, und gibt einen Zeitstempel für die erste Millisekunde dieses Monats zurück.

Diagramm der Funktion `monthstart()`, Beispiel ohne zusätzliche Argumente

Diagramm der Funktion `monthstart()`, Beispiel ohne zusätzliche Argumente

Diagramm der Funktion `monthstart()`monthstart(), Beispiel ohne zusätzliche Argumente![Diagramm mit den Ergebnissen bei Verwendung der Funktion „monthstart“, um den Monat zu bestimmen, in dem eine Transaktion stattfand.](https://help.qlik.com/de-DE/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthstart-example-no-add-arg.png)

Transaktion 8192 fand am 16. März statt. Die Funktion `monthstart()` gibt die erste Millisekunde dieses Monats zurück, also den 1. März um 12:00:00 AM.

## Beispiel 2 – period\_no

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

#### Ladeskript und Ergebnisse

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel.

* Es wird ein Feld `previous_month_start` erstellt, das den Zeitstempel für den Start des Monats vor dem Monat zurückgibt, in dem die Transaktion stattfand.

Ladeskript

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

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

* `date`

* `previous_month_start`

* `previous_month_start_timestamp`

Ergebnistabelle

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

Da in diesem Fall eine `period_no` von -1 als Versatzargument in der Funktion `monthstart()` verwendet wurde, identifiziert die Funktion zuerst den Monat, in dem die Transaktionen stattfanden. Dann geht sie einen Monat zurück und identifiziert die erste Millisekunde dieses Monats.

Diagramm der Funktion `monthstart()`, Beispiel „period\_no“

Diagramm der Funktion `monthstart()`, Beispiel „period\_no“

Diagramm der Funktion `monthstart()`monthstart(), Beispiel „period\_no“![Diagramm mit den Ergebnissen bei Verwendung der Funktion „monthstart“, um den Monat zu bestimmen, in dem eine Transaktion stattfand.](https://help.qlik.com/de-DE/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthstart-example-period-no.png)

Transaktion 8192 fand am 16. März statt. Die Funktion `monthstart()` identifiziert, dass der Monat vor dem Transaktionsdatum der Februar war. Dann wird die erste Millisekunde dieses Monats zurückgegeben, der 1. Februar um 12:00:00 AM.

## Beispiel 3 – Diagrammobjektbeispiel

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

#### Ladeskript und Diagrammformel

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.

Das Ladeskript verwendet den gleichen Datensatz und das gleiche Szenario wie das erste Beispiel.

In diesem Beispiel wird jedoch der unveränderte Datensatz in die Anwendung geladen. Die Berechnung, die einen Zeitstempel für den Start des Monats zurückgibt, in dem die Transaktionen stattfanden, wird als Kennzahl in einem Diagrammobjekt der Anwendung erstellt.

Ladeskript

```

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

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu: `date`.

Um das Startdatum des Monats zu berechnen, in dem eine Transaktion stattfindet, erstellen Sie die folgenden Kennzahlen:

* `=monthstart(date)`

* `=timestamp(monthstart(date))`

Ergebnistabelle

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

Die Kennzahl `start_of_month` wird im Diagrammobjekt erstellt, indem die Funktion `monthstart()` verwendet und das Datumsfeld als Argument der Funktion übergeben wird.

Die Funktion `monthstart()` identifiziert, in welchen Monat der Datumswert fällt, und gibt einen Zeitstempel für die erste Millisekunde dieses Monats zurück.

Diagramm der Funktion `monthstart()`, Diagrammobjektbeispiel

Diagramm der Funktion `monthstart()`, Diagrammobjektbeispiel

Diagramm der Funktion `monthstart()`monthstart(), Diagrammobjektbeispiel![Diagramm mit den Ergebnissen bei Verwendung der Funktion „monthstart“, um den Monat zu bestimmen, in dem eine Transaktion stattfand.](https://help.qlik.com/de-DE/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthstart-example-chart-object.png)

Transaktion 8192 fand am 16. März statt. Die Funktion `monthstart()` identifiziert, dass die Transaktion im März stattfand, und gibt die erste Millisekunde dieses Monats zurück, also den 1. März um 12:00:00 AM.

## Beispiel 4 – Szenario

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

#### Ladeskript und Diagrammformel

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Ein Datensatz mit einer Reihe von Darlehenssalden wird in eine Tabelle namens Loans geladen.

* Die Daten bestehen aus der Darlehens-ID, dem Saldo zum Monatsbeginn und dem einfachen Zinssatz, der für jedes Darlehen pro Jahr berechnet wird.

Der Endbenutzer möchte ein Diagrammobjekt, das nach Darlehens-ID die aktuellen Zinsen anzeigt, die für jedes Darlehen im Monat bis dato aufgelaufen sind.

Ladeskript

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

Ergebnisse

Gehen Sie folgendermaßen vor:

1. Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

   * loan\_id

   * start\_balance

2. Erstellen Sie dann eine Kennzahl, um die kumulierten Zinsen zu berechnen:

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

3. Legen Sie das Zahlenformat der Kennzahl auf Währung fest.

Ergebnistabelle

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

Die Funktion monthstart() verwendet das aktuelle Datum als einziges Argument und gibt das Startdatum des aktuellen Monats zurück. Die Formel zieht dieses Ergebnis vom aktuellen Datum ab und gibt die Anzahl der Tage zurück, die bisher im Monat verstrichen sind.

Dieser Wert wird dann mit dem Zinssatz multipliziert und durch 365 geteilt, um den effektiven Zinssatz für diesen Zeitraum zurückzugeben. Das Ergebnis wird dann mit dem Anfangssaldo des Darlehens multipliziert, was die Zinsen ergibt, die bislang in diesem Monat aufgelaufen sind.