# inmonthtodate Skript- und Diagrammfunktion

Liefert True, wenn date innerhalb des Teils des Monats liegt, der basedate enthält, und zwar bis einschließlich der letzten Millisekunde von basedate.

Syntax:

InMonthToDate (timestamp, base\_date, period\_no)

Rückgabe Datentyp: Boolesch

Diagramm der Funktion `inmonthtodate`.

Diagramm der Funktion `inmonthtodate`.

Diagramm der Funktion `inmonthtodate`inmonthtodate. ![Das Diagramm zeigt, wie die Funktion „inmonthtodate“ verwendet werden kann, um zu identifizieren, ob ein Zeitstempel innerhalb oder außerhalb eines bestimmten Monats liegt.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthtodate-diagram1.png)

Die Funktion `inmonthtodate()` identifiziert einen ausgewählten Monat als Segment. Die Startgrenze ist der Anfang des Monats. Die Endgrenze kann als ein späteres Datum im Monat festgelegt werden. Dann wird bestimmt, ob ein Satz Datumswerte in dieses Segment fällt oder nicht, und es wird ein boolescher Wert von TRUE oder FALSE zurückgegeben.

Argumente

| Argument | Beschreibung |
| --- | --- |
| timestamp | Das Datum, das mit base\_date verglichen werden soll. |
| base\_date | Datum, das für die Interpretation des Monats verwendet wird. |
| period\_no | Mit period\_no kann ein anderer Beginn für den Monat festgelegt werden. period\_no ist eine ganze Zahl, wobei 0 für den Monat steht, der base\_date enthält. Negative Werte von period\_no stehen für vorangehende, positive Werte für nachfolgende Monate. |

Verwendung von inmonthtodate

Die Funktion `inmonthtodate()` gibt einen booleschen Wert zurück. In der Regel wird dieser Funktionstyp als Bedingung in einer `if expression` verwendet. Die Funktion `inmonthtodate()` gibt eine Aggregierung oder Berechnung zurück, abhängig davon, ob ein Datum in den Monat bis einschließlich zum betreffenden Datum fällt.

Beispielsweise kann die Funktion `inmonthtodate()` verwendet werden, um alle in einem Monat bis zu einem bestimmten Datum gefertigten Geräte zu identifizieren.

## 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. Weitere Informationen finden Sie unter [Ändern von regionalen Einstellungen für Anwendungen und Skripte](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Regionale Standardeinstellungen in Anwendungen basieren auf dem Benutzerprofil. Diese Einstellungen im regionalen Format hängen nicht mit der Sprache zusammen, die in der Benutzeroberfläche von Qlik Cloud angezeigt wird. Qlik Cloud wird in der gleichen Sprache wie der von Ihnen verwendete Browser angezeigt.

Wenn Sie Anwendungsersteller sind, können Sie die Standardregion für die von Ihnen erstellten Anwendungen festlegen. Weitere Informationen finden Sie unter [Festlegen der bevorzugten regionalen Einstellungen für die App-und Skripterstellung in Qlik Cloud Analytics](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

Funktionsbeispiele

| Beispiel | Ergebnis |
| --- | --- |
| `inmonthtodate ('01/25/2013', '25/01/2013',<br>0)` | Liefert True |
| `inmonthtodate ('01/25/2013', '24/01/2013',<br>0)` | Liefert False |
| `inmonthtodate ('01/25/2013', '28/02/2013',<br>-1)` | Liefert True |

## Beispiel 1 – keine zusätzlichen Argumente

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonthtodate.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, der eine Reihe von Transaktionen für 2022 enthält, wird in eine Tabelle namens „`Transactions`“ geladen.

* Ein Datumsfeld wird im Format `DateFormat` der Systemvariablen `MM/DD/YYYY` bereitgestellt.

* Ein vorangehender load-Befehl, der Folgendes enthält:

  * Die Funktion `inmonthtodate()`, die als Feld „`in_month_to_date`“ festgelegt ist. Dies bestimmt, welche Transaktionen zwischen dem 1. und 26. Juli 2022 stattgefunden haben.

Ladeskript

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthtodate(date,'07/26/2022', 0) as in_month_to_date 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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`
* `in_month_to_date`

Ergebnistabelle

| Datum | in\_month\_to\_date |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | 0 |
| 5/7/2022 | 0 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | -1 |
| 7/22/2022 | -1 |
| 7/23/2022 | -1 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Das Feld „`in_month_to_date`“ wird in der vorangehenden load-Anweisung mithilfe der Funktion `inmonthtodate()` erstellt.

Das erste Argument identifiziert, welches Feld ausgewertet wird. Das zweite Argument ist ein hartcodiertes Datum, der 26. Juli. Dies ist das `base_date`. Dieses Argument `base_date` identifiziert, welcher Monat segmentiert wird, und bestimmt die Endgrenze dieses Segments.

Eine `period_no` von `0` ist das abschließende Argument, was bedeutet, dass die Funktion keine Monate vor oder nach dem segmentierten Monat vergleicht.

Diagramm der Funktion `inmonthtodate` ohne zusätzlichen Argumente.

Diagramm der Funktion `inmonthtodate` ohne zusätzlichen Argumente.

Diagramm der Funktion `inmonthtodate`inmonthtodate ohne zusätzlichen Argumente. ![Das Diagramm zeigt den Bereich der Transaktionen, die von der Funktion „inmonthtodate“ als TRUE identifiziert werden.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthtodate-example1-diagram.png)

Daher gibt jede Transaktion, die zwischen dem 1. Januar und 26. Juli stattfindet, ein boolesches Ergebnis von TRUE zurück. Jede Transaktion, die im Juli nach dem 26. Juli stattfindet, gibt ein boolesches Ergebnis von FALSE zurück, ebenso wie jede Transaktion in den anderen Monaten des Jahres.

## Beispiel 2 – period\_no

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

#### Ladeskript und Ergebnisse

Übersicht

Es werden derselbe Datenatz und dasselbe Szenario wie im ersten Beispiel verwendet.

In diesem Beispiel besteht die Aufgabe darin, ein Feld „`six_months_prior`“ zu erstellen, das bestimmt, welche Transaktionen volle sechs Monate vor dem 1. Juli bis 26. Juli stattfanden.

Ladeskript

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthtodate(date,'07/26/2022', -6) as six_months_prior 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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`

* `six_months_prior`

Ergebnistabelle

| Datum | six\_months\_prior |
| --- | --- |
| 1/7/2022 | -1 |
| 1/19/2022 | -1 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | 0 |
| 5/7/2022 | 0 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Da `-6` als das Argument `period_no` in der Funktion `inmonthtodate()` verwendet wird, verschieben sich die Grenzen des Vergleichsmonats um sechs Monate. Anfänglich liegt das Monatssegment zwischen dem 1. und dem 26. Juli. Die `period_no` versetzt dann dieses Segment um negative sechs Monate, und die Datumsgrenzen werden zum 1. bis 26. Januar verschoben.

Diagramm der Funktion `inmonthtodate`, wobei „period\_no“ auf -6 festgelegt ist.

Diagramm der Funktion `inmonthtodate`, wobei „period\_no“ auf -6 festgelegt ist.

Diagramm der Funktion `inmonthtodate`inmonthtodate, wobei „period\_no“ auf -6 festgelegt ist. ![Das Diagramm zeigt den Bereich der Transaktionen, wobei das Argument für „period_no“ auf -6 festgelegt ist.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthtodate-example2-diagram.png)

Hier gibt jede Transaktion, die zwischen dem 1. Januar und 26. Januar stattfindet, ein boolesches Ergebnis von TRUE zurück.

## Beispiel 3 – Diagrammbeispiel

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

#### formel

Übersicht

Es werden derselbe Datenatz und dasselbe Szenario wie im ersten Beispiel verwendet.

In diesem Beispiel wird der unveränderte Datensatz in die Anwendung geladen. Die Aufgabe besteht im Erstellen einer Berechnung, de bestimmt, ob Transaktionen zwischen dem 1. Juli und dem 26. Juli stattfanden. Sie wird als Kennzahl in einem Diagramm der Anwendung erstellt.

Ladeskript

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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 zu berechnen, ob Transaktionen zwischen dem 1. und 26. Juli stattfanden, erstellen Sie die folgende Kennzahl:

`=inmonthtodate(date,'07/26/2022', 0)`

Ergebnistabelle

| Datum | =inmonthtodate(date,'07/26/2022', 0) |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | 0 |
| 5/7/2022 | 0 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | -1 |
| 7/22/2022 | -1 |
| 7/23/2022 | -1 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Das Feld „`in_month_to_date`“ wird als Kennzahl im Diagramm mithilfe der Funktion `inmonthtodate()` erstellt.

Das erste Argument identifiziert, welches Feld ausgewertet wird. Das zweite Argument ist ein hartcodiertes Datum, der 26. Juli. Dies ist das `base_date`. Dieses Argument „base\_date“ identifiziert, welcher Monat segmentiert wird und legt die Endgrenze des Segments fest. Eine `period_no` von 0 ist das abschließende Argument. Das bedeutet, dass die Funktion keine Monate vor oder nach dem segmentierten Monat vergleicht.

Diagramm der Funktion `inmonthtodate` ohne zusätzlichen Argumente.

Diagramm der Funktion `inmonthtodate` ohne zusätzlichen Argumente.

Diagramm der Funktion `inmonthtodate`inmonthtodate ohne zusätzlichen Argumente. ![Das Diagramm zeigt den Bereich der Transaktionen zwischen dem 1. und 26. Juli.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthtodate-example3-diagram.png)

Daher gibt jede Transaktion, die zwischen dem 1. Januar und 26. Juli stattfindet, ein boolesches Ergebnis von TRUE zurück. Jede Transaktion, die im Juli nach dem 26. Juli stattfindet, gibt ein boolesches Ergebnis von FALSE zurück, ebenso wie jede Transaktion in den anderen Monaten des Jahres.

## Beispiel 4 – Szenario

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

#### Ladeskript und Ergebnisse

Übersicht

In diesem Beispiel wird ein Datensatz in eine Tabelle namens „`Products`“ geladen. Die Tabelle enthält die folgenden Felder:

* Produkt-ID

* Herstellungsdatum

* Selbstkosten

Aufgrund eines Maschinenfehlers waren die im Monat Juli 2022 gefertigten Produkte mangelhaft. Das Problem wurde am 27. Juli 2022 behoben.

Der Endbenutzer möchte ein Diagramm haben, das nach Monat den Status der hergestellten Produkte angibt und zeigt, welche „mangelhaft“ (boolesch TRUE) und welche „einwandfrei“ (boolesch FALSE) waren und was die in diesem Monat gefertigten Produkte gekostet haben.

Ladeskript

```
Products: 
Load 
* 
Inline  
[ 
product_id,manufacture_date,cost_price 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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:

* `=monthname(manufacture_date)`
* `=if(Inmonthtodate(manufacture_date,makedate(2022,07,26),0),'Defective','Faultless')`

Um die Summe der Produktkosten zu berechnen, erstellen Sie die folgende Kennzahl:

`=sum(cost_price)`

Legen Sie die Zahlenformatierung der Kennzahl auf Währung fest.

Ergebnistabelle

| monthname(manufacture\_date) | if(Inmonthtodate(manufacture\_date,makedate(2022,07,26),0),'Defective','Faultless') | Sum(cost\_price) |
| --- | --- | --- |
| Jan 2022 | Einwandfrei | $54.40 |
| Feb 2022 | Einwandfrei | $145.69 |
| Mär 2022 | Einwandfrei | $53.80 |
| Apr 2022 | Einwandfrei | $82.06 |
| Mai 2022 | Einwandfrei | $127.60 |
| Jun 2022 | Einwandfrei | $141.82 |
| Jul 2022 | Defekt | $144.66 |
| Jul 2022 | Einwandfrei | $69.98 |
| Aug 2022 | Einwandfrei | $147.46 |
| Sep 2022 | Einwandfrei | $84.21 |
| Okt 2022 | Einwandfrei | $163.91 |

Die Funktion `inmonthtodate()` gibt einen booleschen Wert zurück, wenn sie das Herstellungsdatum der einzelnen Produkte auswertet.

Für die Datumswerte, die einen booleschen Wert von TRUE zurückgeben, wird das Produkt als „mangelhaft“ markiert. Alle Produkte, die einen Wert von FALSE zurückgeben und daher nicht im Monat bis einschließlich 26. Juli gefertigt wurden, werden als „einwandfrei“ markiert.