# 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/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-indaytotime-diagram-overview.png)

Kiedy używać

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: Wartość 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/RRRR. 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.

Domyślne ustawienia regionalne w aplikacjach są oparte na regionalnych ustawieniach systemu komputera lub serwera, na którym zainstalowano Qlik Sense. Jeśli serwer Qlik Sense, do którego uzyskujesz dostęp, jest ustawiony na Szwecję, Edytor ładowania danych użyje szwedzkich ustawień regionalnych dla dat, godziny i waluty. Te ustawienia regionalne nie są związane z językiem wyświetlanym w interfejsie użytkownika Qlik Sense. Interfejs Qlik Sense będzie wyświetlany w tym samym języku co używana przeglądarka.

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

| data | 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/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-indaytotime-example1-diagram.png)

Pole `in_day_to_time field` zostało utworzone w instrukcji ładowania poprzedzającego 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/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/indaytotime.htm)

#### Skrypt ładowania i wyniki

Przegląd

Skrypt ładowania wykorzystuje ten sam zbiór danych i zastosowanie, 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

| data | 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/sense/May2025/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/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/indaytotime.htm)

#### Skrypt ładowania i wyniki

Przegląd

Używany jest ten sam zestaw danych i zastosowanie 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

| data | 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/sense/May2025/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/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/indaytotime.htm)

#### Skrypt ładowania i wyrażenie wykresu

Przegląd

Używany jest ten sam zestaw danych i zastosowanie 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

| data | =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/sense/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.