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.
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.
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.
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).
Poprzednie ładowanie 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.
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
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
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.
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
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
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.
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
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
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.
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 — scenariusz
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.
Utwórz etykietę dla obiektu wskaźnika KPI „Current Revenue”.
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.
Czy ta strona była pomocna?
Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!