# inmonthtodate funkcja skryptu i funkcja wykresu

Zwraca wartość True, jeśli wartość date należy do części miesiąca zawierającego wartość basedate z dokładnością do jednej milisekundy wartości basedate włącznie.

Składnia:

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

Typ zwracanych danych: Logiczna

Schemat funkcji `inmonthtodate`.

Schemat funkcji `inmonthtodate`.

Schemat funkcji `inmonthtodate`inmonthtodate. ![Diagram pokazujący, jak za pomocą funkcji inmonthtodate można sprawdzić, czy dany znacznik czasu mieści się w określonym miesiącu.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthtodate-diagram1.png)

Funkcja `inmonthtodate()` identyfikuje określony miesiąc jako segment. Granica początkowa to początek miesiąca. Granica końcowa może zostać ustawiona na późniejszą datę w miesiącu. Następnie sprawdza, czy zestaw dat mieści się w tym zakresie, zwracając w wyniku logiczną prawdę lub logiczny fałsz.

Argumenty

| Argument | Opis |
| --- | --- |
| timestamp | Data, która ma być porównana z wartością base\_date. |
| base\_date | Data używana do oceny miesiąca. |
| period\_no | Miesiąc może zostać przesunięty o wartość period\_no. period\_no jest liczbą całkowitą, gdzie 0 oznacza miesiąc zawierający wartość base\_date. Wartości ujemne parametru period\_no oznaczają miesiące poprzednie, a wartości dodatnie — miesiące następne. |

Kiedy używać inmonthtodate

Funkcja `inmonthtodate()` zwraca wynik logiczny. Zazwyczaj ten typ funkcji jest używany jako warunek w `if expression`. Funkcja `inmonthtodate()` zwraca agregację lub obliczenia, które zależą od tego, czy data wypada w miesiącu do interesującej nas daty włącznie.

Na przykład funkcja `inmonthtodate()` może służyć do identyfikacji całego sprzętu wyprodukowanego w miesiącu do określonej daty.

## Ustawienia regionalne

Jeżeli nie podano inaczej, w przykładach w tym temacie stosowany jest następujący format daty: MM/DD/YYYY. Format daty jest określony w instrukcji `SET DateFormat` w skrypcie ładowania danych. Domyślny format daty w Twoim systemie może być inny ze względu na ustawienia regionalne i inne czynniki. Formaty zastosowane w przykładach można zmienić, aby dostosować je do własnych wymagań. Zamiast tego można też zmienić formaty w skrypcie ładowania, aby pasowały do tych przykładów. Więcej informacji można znaleźć w temacie [Modyfikowanie ustawień regionalnych na potrzeby aplikacji i skryptów](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Domyślne ustawienia regionalne w aplikacjach są oparte na profilu użytkownika. Te ustawienia regionalne nie są związane z językiem wyświetlanym w interfejsie użytkownika Qlik Cloud. Interfejs Qlik Cloud będzie wyświetlany w tym samym języku co używana przeglądarka.

Jeżeli jesteś twórcą aplikacji, możesz wybrać domyślny region dla tworzonych przez siebie aplikacji. Więcej informacji zawiera temat [Ustawianie preferowanych ustawień regionalnych do tworzenia aplikacji i skryptów w Analityka Qlik Cloud](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

Przykłady funkcji

| Przykład | Wynik |
| --- | --- |
| `inmonthtodate ('01/25/2013', '25/01/2013',<br>0)` | Zwraca wartość True |
| `inmonthtodate ('01/25/2013', '24/01/2013',<br>0)` | Zwraca wartość False |
| `inmonthtodate ('01/25/2013', '28/02/2013',<br>-1)` | Zwraca wartość True |

## Przykład 1 — bez dodatkowych argumentów

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

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych zawierający zestaw transakcji za rok 2022, który jest ładowany do tabeli o nazwie `Transactions`.

* Pole daty zostało przekazane w formacie `DateFormat` zmiennej systemowej (`MM/DD/YYYY`).

* Instrukcja ładowania poprzedzającego zawiera:

  * funkcję `inmonthtodate()`, która jest ustawiona jako pole `in_month_to_date`. Pozwala to sprawdzić, które transakcje zostały zawarte między 1 a 26 lipca 2022 roku.

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `date`
* `in_month_to_date`

Tabela wynikowa

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

Pole `in_month_to_date` jest tworzone w poprzedniej instrukcji ładowania przy użyciu funkcji `inmonthtodate()`.

Pierwszy argument określa, które pole jest oceniane. Drugi argument to wpisana bezpośrednio w kod data 26 lipca, która jest wartością argumentu `base_date`. Ten argument `base_date` określa, który miesiąc jest segmentowany i końcową granicę tego segmentu.

Argument `period_no` o wartości `0` jest ostatni, co oznacza, że funkcja nie porównuje miesięcy poprzedzających segmentowany miesiąc ani następujących po nim.

Diagram funkcji `inmonthtodate` bez dodatkowych argumentów.

Diagram funkcji `inmonthtodate` bez dodatkowych argumentów.

Diagram funkcji `inmonthtodate`inmonthtodate bez dodatkowych argumentów. ![Diagram pokazujący zakres transakcji, które zostały zidentyfikowane jako prawdziwe przez funkcję inmonthtodate.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthtodate-example1-diagram.png)

W efekcie wszelkie transakcje, które występują między 1 a 26 lipca, powodują zwrot w wyniku logicznej prawdy. Każda transakcja zawarta w lipcu po 26 lipca powoduje zwrot logicznego fałszu, podobnie jak każda transakcja zawarta w jakimkolwiek innym miesiącu roku.

## Przykład 2 – period\_no

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

#### Skrypt ładowania i wyniki

Przegląd

Używany jest ten sam zestaw danych i scenariusz co w pierwszym przykładzie.

W tym przykładzie chodzi o utworzenie pola, `six_months_prior`, sprawdzającego, które transakcje zostały zawarte pełne sześć miesięcy przed 1 i 26 lipca.

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `date`

* `six_months_prior`

Tabela wynikowa

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

Po otrzymaniu wartości `-6` jako argumentu `period_no` funkcja `inmonthtodate()` przesuwa granice segmentu miesiąca porównawczego o sześć miesięcy. Początkowo segment miesiąca jest równy zakresowi dat od 1 do 26 lipca. Następnie `period_no` przesuwa go wstecz o sześć miesięcy, w efekcie czego zostają przesunięte granice dat, które od tej pory wypadają między 1 i 26 stycznia.

Diagram funkcji `inmonthtodate` z argumentem period\_no ustawionym na -6.

Diagram funkcji `inmonthtodate` z argumentem period\_no ustawionym na -6.

Diagram funkcji `inmonthtodate`inmonthtodate z argumentem period\_no ustawionym na -6. ![Diagram pokazujący zakres transakcji z argumentem period_no ustawionym na -6.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthtodate-example2-diagram.png)

W efekcie wszelkie transakcje zawarte między 1 i 26 stycznia będą powodować zwrot w wyniku logicznej prawdy.

## Przykład 3 – przykład z wykresem

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

#### Skrypt ładowania i wyrażenie

Przegląd

Używany jest ten sam zestaw danych i scenariusz co w pierwszym przykładzie.

W tym przykładzie zbiór danych pozostaje bez zmian i jest ładowany do aplikacji. Zadanie polega na utworzeniu obliczenia określającego, czy transakcje miały miejsce między 1 a 26 lipca, jako miary w wykresie aplikacji.

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar:

`date`

Aby obliczyć, czy transakcje zostały zawarte między 1 a 26 lipca, utwórz następującą miarę:

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

Tabela wynikowa

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

Miara pola `in_month_to_date` została utworzona na wykresie za pomocą funkcji `inmonthtodate()`.

Pierwszy argument określa, które pole jest oceniane. Drugi argument to wpisana bezpośrednio w kod data 26 lipca, która jest wartością argumentu `base_date`. Ten argument base\_date określa, który miesiąc jest segmentowany i końcową granicę tego segmentu. Ostatni argument to `period_no` o wartości 0. To znaczy, że funkcja nie porównuje miesięcy poprzedzających segmentowany miesiąc, ani po nim następujących.

Diagram funkcji `inmonthtodate` bez dodatkowych argumentów.

Diagram funkcji `inmonthtodate` bez dodatkowych argumentów.

Diagram funkcji `inmonthtodate`inmonthtodate bez dodatkowych argumentów. ![Diagram pokazujący zakres transakcji między 1 a 26 lipca.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthtodate-example3-diagram.png)

W efekcie wszelkie transakcje, które występują między 1 a 26 lipca, powodują zwrot w wyniku logicznej prawdy. Każda transakcja zawarta w lipcu po 26 lipca powoduje zwrot logicznego fałszu, podobnie jak każda transakcja zawarta w jakimkolwiek innym miesiącu roku.

## Przykład 4 — zastosowanie

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

#### Skrypt ładowania i wyniki

Przegląd

W tym przykładzie zestaw danych jest ładowany do tabeli o nazwie `Products`. Tabela zawiera następujące pola:

* Product ID

* Manufacture date

* Cost price

Z powodu błędu sprzętowego produkty wyprodukowane w lipcu 2022 r. były wadliwe. Problem został rozwiązany 27 lipca 2022 r.

Użytkownik końcowy chciałby uzyskać wykres wyświetlający według miesięc status produktów: „defective” (wadliwe; wartość logiczna TRUE) lub „faultless” (bez wad; wartość logiczna FALSE) oraz koszt produktów wytworzonych w danym miesiącu.

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

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

Aby obliczyć sumę kosztów produktów, utwórz następującą miarę:

`=sum(cost_price)`

Ustaw Formatowanie liczb miary na Waluta.

Tabela wynikowa

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

Funkcja `inmonthtodate()` zwraca wartość logiczną podczas oceny dat wytworzenia każdego z produktów.

Dla dat powodujących zwrot logicznej prawdy produkt jest oznaczany jako wadliwy (Defective). Dla każdego produktu powodującego zwrot wartości FALSE, a zatem niewyprodukowanego w lipcu do 26. dnia tego miesiąca włącznie, funkcja dodaje oznaczenie „Faultless” (Bez wad).