# indaytotime funkcja skryptu i funkcja wykresu

Ta funkcja zwraca wartość True, jeśli wartość timestamp należy do części dnia zawierającego wartość base\_timestamp, z dokładnością do jednej milisekundy wartości base\_timestamp włącznie.

Składnia:

InDayToTime (timestamp, base\_timestamp, period\_no[, day\_start])

Funkcja `indaytotime()` zwraca wartość logiczną określoną na podstawie tego, czy wartość znacznika czasu mieści się w danym odcinku dnia. Granicą początkową tego odcinka jest początek dnia. Domyślna wartość to północ, ale można ją zmienić za pomocą argumentu `day_start` funkcji `indaytotime()`. Granicę końcową odcinka dnia określa argument funkcji `base_timestamp`.

Schemat funkcji `indaytotime`.

Schemat funkcji `indaytotime`.

Schemat funkcji `indaytotime`indaytotime. ![Schemat przedstawiający relacje między zmiennymi funkcji indaytotime.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-indaytotime-diagram-overview.png)

Kiedy używać indaytotime

Funkcja `indaytotime()` zwraca wynik logiczny. Zazwyczaj ten typ funkcji będzie używany jako warunek w `if expression`. Funkcja `indaytotime()` zwraca agregację lub obliczenie w zależności od tego, czy znacznik czasu wystąpił w segmencie dnia do momentu podstawowego znacznika czasu włącznie.

Na przykład funkcja `indaytotime()` może służyć do pokazania sumy sprzedaży biletów na seanse, które odbyły się do tej pory w dniu dzisiejszym.

Typ zwracanych danych: Logiczna

W Qlik Sense wartość logiczna Prawda jest reprezentowana przez -1, a wartość Fałsz jest reprezentowana przez 0.

Argumenty

| Argument | Opis |
| --- | --- |
| ` timestamp  ` | Data i godzina, które mają być porównane z wartością `base_timestamp`. |
| ` base_timestamp  ` | Data i godzina używane do oceny znacznika czasu. |
| ` period_no  ` | Dzień może zostać przesunięty o wartość `period_no`. `period_no` jest liczbą całkowitą, gdzie 0 oznacza dzień zawierający wartość `base_timestamp`. Wartości ujemne parametru `period_no` oznaczają dni poprzednie, a wartości dodatnie — dni następne. |
| ` day_start  ` | Opcjonalnie, jeśli wymagane jest korzystanie z dni, które nie zaczynają się o północy, należy wskazać przesunięcie w postaci ułamka dnia w parametrze `day_start`. Na przykład 0,125 będzie oznaczać godzinę 3:00. |

## 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 |
| --- | --- |
| `indaytotime` ('01/12/2006 12:23:00 PM', '01/12/2006 11:59:00 PM', 0) | Zwraca prawdę |
| `indaytotime` ('01/12/2006 12:23:00 PM', '01/12/2006 12:00:00 AM', 0) | Zwraca fałsz |
| `indaytotime` '01/11/2006 12:23:00 PM', '01/12/2006 11:59:00 PM', -1) | Zwraca prawdę |

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

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

#### Skrypt ładowania i wyniki

Przegląd

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

Skrypt ładowania zawiera:

* Zestaw danych zawierający zbiór transakcji z okresu między 4 i 5 stycznia jest ładowany do tabeli o nazwie „Transactions”.

* Pole daty, które jest przekazywane w formacie `TimeStamp` zmiennej systemowej `(M/D/YYYY h:mm:ss[.fff] TT)`.

* Ładowanie poprzedzające zawierające funkcję `indaytotime()`, która jest ustawiona jako `'in_day_to_time'`, pole określające, czy każda z transakcji miała miejsce przed godziną 9:00.

Skrypt ładowania

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';

Transactions:
    Load
        *,
        indaytotime(date,'01/05/2022 9:00:00 AM',0) as in_day_to_time
        ;
Load
*
Inline 
[
id,date,amount
8188,'01/04/2022 3:41:54 AM',25.66
8189,'01/04/2022 4:19:43 AM',87.21
8190,'01/04/2022 4:53:47 AM',53.80
8191,'01/04/2022 8:38:53 AM',69.98
8192,'01/04/2022 10:37:52 AM',57.42
8193,'01/04/2022 1:54:10 PM',45.89
8194,'01/04/2022 5:53:23 PM',82.77
8195,'01/04/2022 8:13:26 PM',36.23
8196,'01/04/2022 10:00:49 PM',76.11
8197,'01/05/2022 7:45:37 AM',82.06
8198,'01/05/2022 8:44:36 AM',17.17
8199,'01/05/2022 11:26:08 AM',40.39
8200,'01/05/2022 6:43:08 PM',37.23
8201,'01/05/2022 10:54:10 PM',88.27
8202,'01/05/2022 11:09:09 PM',95.93
];
```

Wyniki

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

* `date`

* `in_day_to_time`

Tabela wynikowa

| date | in\_day\_to\_time |
| --- | --- |
| 01/04/2022 3:41:54 AM | 0 |
| 01/04/2022 4:19:43 AM | 0 |
| 01/04/2022 04:53:47 AM | 0 |
| 01/04/2022 8:38:53 AM | 0 |
| 01/04/2022 10:37:52 AM | 0 |
| 01/04/2022 1:54:10 PM | 0 |
| 01/04/2022 5:53:23 PM | 0 |
| 01/04/2022 8:13:26 PM | 0 |
| 01/04/2022 10:00:49 PM | 0 |
| 01/05/2022 7:45:37 AM | -1 |
| 01/05/2022 8:44:36 AM | -1 |
| 01/05/2022 11:26:08 AM | 0 |
| 01/05/2022 6:43:08 PM | 0 |
| 01/05/2022 10:54:10 PM | 0 |
| 01/05/2022 11:09:09 PM | 0 |

Przykład 1 – schemat funkcji `indaytotime` z limitem do godziny 9:00.

Przykład 1 – schemat funkcji `indaytotime` z limitem do godziny 9:00.

Przykład 1 – schemat funkcji `indaytotime`indaytotime z limitem do godziny 9:00. ![Schemat przedstawiający funkcję indaytotime() z limitem do godziny 9:00.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-indaytotime-example1-diagram.png)

Pole `in_day_to_time field` zostało utworzone w poprzedniej instrukcji ładowania za pomocą funkcji `indaytotime()`, której jako argumenty przekazano pole daty, wpisany w kod znacznik czasu oznaczający 5 stycznia, i przesunięcie o wartości 0. Wszystkie transakcje mające miejsce między północą a godziną 9:00 5 stycznia dają wynik prawdziwy.

## Przykład 2 – period\_no

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

#### Skrypt ładowania i wyniki

Przegląd

Skrypt ładowania wykorzystuje ten sam zbiór danych i scenariusz, które były używane w pierwszym przykładzie.

Jednak w tym przykładzie chodzi o obliczenie, czy data transakcji wypada dzień przed godziną 9:00 5 stycznia.

Skrypt ładowania

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';

Transactions:
    Load
        *,
        indaytotime(date,'01/05/2022 9:00:00 AM', -1) as in_day_to_time
        ;
Load
*
Inline 
[
id,date,amount
8188,'01/04/2022 3:41:54 AM',25.66
8189,'01/04/2022 4:19:43 AM',87.21
8190,'01/04/2022 4:53:47 AM',53.80
8191,'01/04/2022 8:38:53 AM',69.98
8192,'01/04/2022 10:37:52 AM',57.42
8193,'01/04/2022 1:54:10 PM',45.89
8194,'01/04/2022 5:53:23 PM',82.77
8195,'01/04/2022 8:13:26 PM',36.23
8196,'01/04/2022 10:00:49 PM',76.11
8197,'01/05/2022 7:45:37 AM',82.06
8198,'01/05/2022 8:44:36 AM',17.17
8199,'01/05/2022 11:26:08 AM',40.39
8200,'01/05/2022 6:43:08 PM',37.23
8201,'01/05/2022 10:54:10 PM',88.27
8202,'01/05/2022 11:09:09 PM',95.93
];
```

Wyniki

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

* `date`

* `in_day_to_time`

Tabela wynikowa

| date | in\_day\_to\_time |
| --- | --- |
| 01/04/2022 3:41:54 AM | -1 |
| 01/04/2022 4:19:43 AM | -1 |
| 01/04/2022 04:53:47 AM | -1 |
| 01/04/2022 8:38:53 AM | -1 |
| 01/04/2022 10:37:52 AM | 0 |
| 01/04/2022 1:54:10 PM | 0 |
| 01/04/2022 5:53:23 PM | 0 |
| 01/04/2022 8:13:26 PM | 0 |
| 01/04/2022 10:00:49 PM | 0 |
| 01/05/2022 7:45:37 AM | 0 |
| 01/05/2022 8:44:36 AM | 0 |
| 01/05/2022 11:26:08 AM | 0 |
| 01/05/2022 6:43:08 PM | 0 |
| 01/05/2022 10:54:10 PM | 0 |
| 01/05/2022 11:09:09 PM | 0 |

Przykład 2 – schemat funkcji `indaytotime` z transakcjami od 4 stycznia.

Przykład 2 – schemat funkcji `indaytotime` z transakcjami od 4 stycznia.

Przykład 2 – schemat funkcji `indaytotime`indaytotime z transakcjami od 4 stycznia. ![Schemat przedstawiający funkcję indaytotime(), która używa period_no o wartości -1, by zwracać transakcje z 4 stycznia.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-indaytotime-example2-diagram.png)

W tym przykładzie, w którym funkcji `indaytotime()` przekazano argument przesunięcia o wartości -1, funkcja ta sprawdza, czy każda transakcja miała miejsce przed godziną 9:00 4 stycznia. Można to zweryfikować w tabeli wyników, w której transakcja zwraca wartość logiczną oznaczającą prawdę.

## Przykład 3 – day\_start

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

#### Skrypt ładowania i wyniki

Przegląd

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

Jednak w tym przykładzie zgodnie z polityką firmy dzień roboczy zaczyna i kończy się o godzinie 8:00.

Skrypt ładowania

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';

Transactions:
    Load
        *,
        indaytotime(date,'01/05/2022 9:00:00 AM', 0,8/24) as in_day_to_time
        ;
Load
*
Inline 
[
id,date,amount
8188,'01/04/2022 3:41:54 AM',25.66
8189,'01/04/2022 4:19:43 AM',87.21
8190,'01/04/2022 4:53:47 AM',53.80
8191,'01/04/2022 8:38:53 AM',69.98
8192,'01/04/2022 10:37:52 AM',57.42
8193,'01/04/2022 1:54:10 PM',45.89
8194,'01/04/2022 5:53:23 PM',82.77
8195,'01/04/2022 8:13:26 PM',36.23
8196,'01/04/2022 10:00:49 PM',76.11
8197,'01/05/2022 7:45:37 AM',82.06
8198,'01/05/2022 8:44:36 AM',17.17
8199,'01/05/2022 11:26:08 AM',40.39
8200,'01/05/2022 6:43:08 PM',37.23
8201,'01/05/2022 10:54:10 PM',88.27
8202,'01/05/2022 11:09:09 PM',95.93
];
```

Wyniki

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

* `date`

* `in_day_to_time`

Tabela wynikowa

| date | in\_day\_to\_time |
| --- | --- |
| 01/04/2022 3:41:54 AM | 0 |
| 01/04/2022 4:19:43 AM | 0 |
| 01/04/2022 04:53:47 AM | 0 |
| 01/04/2022 8:38:53 AM | 0 |
| 01/04/2022 10:37:52 AM | 0 |
| 01/04/2022 1:54:10 PM | 0 |
| 01/04/2022 5:53:23 PM | 0 |
| 01/04/2022 8:13:26 PM | 0 |
| 01/04/2022 10:00:49 PM | 0 |
| 01/05/2022 7:45:37 AM | 0 |
| 01/05/2022 8:44:36 AM | -1 |
| 01/05/2022 11:26:08 AM | 0 |
| 01/05/2022 6:43:08 PM | 0 |
| 01/05/2022 10:54:10 PM | 0 |
| 01/05/2022 11:09:09 PM | 0 |

Przykład 3 – schemat funkcji `indaytotime` z transakcjami od godziny 8:00 do 9:00.

Przykład 3 – schemat funkcji `indaytotime` z transakcjami od godziny 8:00 do 9:00.

Przykład 3 – schemat funkcji `indaytotime`indaytotime z transakcjami od godziny 8:00 do 9:00. ![Schemat przedstawiający funkcję indaytotime(), która pokazuje transakcje od godziny 8:00 do 9:00.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-indaytotime-example3-diagram.png)

Ponieważ w funkcji `indaytotime()` użyto argumentu `start_day` 8/24, który odpowiada godzinie 8:00, każdy dzień zaczyna się i kończy o 8:00. Dlatego funkcja `indaytotime()` zwróci wynik logiczny PRAWDA dla każdej transakcji, która wystąpiła między 8:00 a 9:00 5 stycznia.

## Przykład 4 – obiekt wykresu

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

#### Skrypt ładowania i wyrażenie

Przegląd

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

Jednak w tym przykładzie zbiór danych pozostaje bez zmian i jest ładowany do aplikacji. Będą wykonywane obliczenia mające na celu stwierdzenie, czy transakcja ma miejsce 5 stycznia przed godziną 9:00, przez utworzenie miary w obiekcie wykresu.

Skrypt ładowania

```

Transactions:
Load
*
Inline 
[
id,date,amount
8188,'01/04/2022 3:41:54 AM',25.66
8189,'01/04/2022 4:19:43 AM',87.21
8190,'01/04/2022 4:53:47 AM',53.80
8191,'01/04/2022 8:38:53 AM',69.98
8192,'01/04/2022 10:37:52 AM',57.42
8193,'01/04/2022 1:54:10 PM',45.89
8194,'01/04/2022 5:53:23 PM',82.77
8195,'01/04/2022 8:13:26 PM',36.23
8196,'01/04/2022 10:00:49 PM',76.11
8197,'01/05/2022 7:45:37 AM',82.06
8198,'01/05/2022 8:44:36 AM',17.17
8199,'01/05/2022 11:26:08 AM',40.39
8200,'01/05/2022 6:43:08 PM',37.23
8201,'01/05/2022 10:54:10 PM',88.27
8202,'01/05/2022 11:09:09 PM',95.93
];
```

Wyniki

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

`date`.

Aby sprawdzić, czy transakcja ma miejsce 5 stycznia przed godziną 9:00, utwórz następującą miarę:

`=indaytotime(date,'01/05/2022 9:00:00 AM',0)`

Tabela wynikowa

| date | =indaytotime(date,'01/05/2022 9:00:00 AM',0) |
| --- | --- |
| 01/04/2022 3:41:54 AM | 0 |
| 01/04/2022 4:19:43 AM | 0 |
| 01/04/2022 04:53:47 AM | 0 |
| 01/04/2022 8:38:53 AM | 0 |
| 01/04/2022 10:37:52 AM | 0 |
| 01/04/2022 1:54:10 PM | 0 |
| 01/04/2022 5:53:23 PM | 0 |
| 01/04/2022 8:13:26 PM | 0 |
| 01/04/2022 10:00:49 PM | 0 |
| 01/05/2022 7:45:37 AM | -1 |
| 01/05/2022 8:44:36 AM | -1 |
| 01/05/2022 11:26:08 AM | 0 |
| 01/05/2022 6:43:08 PM | 0 |
| 01/05/2022 10:54:10 PM | 0 |
| 01/05/2022 11:09:09 PM | 0 |

Pole `in_day_to_time` zostało utworzone w poprzedniej instrukcji ładowania za pomocą funkcji `indaytotime()`, której jako argumenty przekazano pole daty, wpisany w kod znacznik czasu oznaczający 5 stycznia, i przesunięcie o wartości `0`. Wszystkie transakcje mające miejsce między północą a godziną 9:00 5 stycznia dają wynik prawdziwy. Można to zweryfikować w tabeli wyników.

## Przykład 5 — zastosowanie

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

#### Skrypt ładowania i wyniki

Przegląd

W tym przykładzie zestaw danych zawierający dane sprzedaży biletów do lokalnego kina jest ładowany do tabeli o nazwie Ticket\_Sales. Dziś jest 3 maja 2022 r. i jest godzina 11:00.

Użytkownik chciałby, aby obiekt wykresu wskaźników KPI pokazywał przychody uzyskane ze wszystkich dotychczasowych seansów.

Skrypt ładowania

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';

Ticket_Sales:
Load
*
Inline 
[
sale ID, show time, ticket price
1,05/01/2022 09:30:00 AM,10.50
2,05/03/2022 05:30:00 PM,21.00
3,05/03/2022 09:30:00 AM,10.50
4,05/03/2022 09:30:00 AM,31.50
5,05/03/2022 09:30:00 AM,10.50
6,05/03/2022 12:00:00 PM,42.00
7,05/03/2022 12:00:00 PM,10.50
8,05/03/2022 05:30:00 PM,42.00
9,05/03/2022 08:00:00 PM,31.50
10,05/04/2022 10:30:00 AM,31.50
11,05/04/2022 12:00:00 PM,10.50
12,05/04/2022 05:30:00 PM,10.50
13,05/05/2022 05:30:00 PM,21.00
14,05/06/2022 12:00:00 PM,21.00
15,05/07/2022 09:30:00 AM,42.00
16,05/07/2022 10:30:00 AM,42.00
17,05/07/2022 10:30:00 AM,10.50
18,05/07/2022 05:30:00 PM,10.50
19,05/08/2022 05:30:00 PM,21.00
20,05/11/2022 09:30:00 AM,10.50
];
```

Wyniki

Wykonaj następujące czynności:

1. Utwórz obiekt wskaźnik KPI.

2. Utwórz miarę, która pokaże sumę sprzedaży wszystkich biletów na seanse, które odbyły się dzisiaj do tej pory, korzystając z funkcji indaytotime():

=sum(if(indaytotime([show time],'05/03/2022 11:00:00 AM',0),[ticket price],0))

1. Utwórz etykietę dla obiektu wskaźnika KPI „Current Revenue”.

2. Ustaw Formatowanie liczb miary na Waluta.

Suma wpływów ze sprzedaży biletów do godziny 11:00 3 maja 2022 r. to 52,50 USD.

Funkcja indaytotime () zwraca wartość logiczną podczas porównywania godzin seansów każdej sprzedaży biletów z czasem bieżącym (’05/03/2022 11:00:00′). W przypadku każdego seansu 3 maja przed godziną 11:00 funkcja indaytotime () zwraca wartość logiczną PRAWDA, a cena biletu zostanie uwzględniona w sumie łącznej.