Funkcje daty i czasu
Funkcje daty i godziny Qlik Sense umożliwiają przekształcanie i konwertowanie wartości daty i godziny. Wszystkie funkcje mogą być stosowane zarówno w skryptach ładowania danych, jak i wyrażeniach wykresu.
Funkcje te bazują na liczbie kolejnej daty i godziny, wyrażającej liczbę dni od 30 grudnia 1899 r. Wartość całkowita reprezentuje datę, a wartość ułamkowa godzinę.
W aplikacji Qlik Sense używana jest numeryczna wartość parametru, dlatego numer jest prawidłowym parametrem także wówczas, gdy nie jest sformatowany jako data lub godzina. Jeśli parametr nie odpowiada wartości numerycznej, na przykład dlatego, że jest ciągiem znaków, aplikacja Qlik Sense podejmuje próbę interpretacji ciągu znaków zgodnie ze zmiennymi środowiska daty i godziny.
Jeśli używany w parametrze format czasu nie odpowiada formatowi ustawionemu w zmiennych środowiska, aplikacja Qlik Sense nie dokona prawidłowej interpretacji. W takim przypadku trzeba zmienić ustawienia lub użyć funkcji interpretacji.
W przykładach dla każdej funkcji jako domyślne formaty godziny i daty przyjmuje się hh:mm:ss iYYYY-MM-DD (ISO 8601).
Podczas przetwarzania znacznika czasu przy użyciu funkcji daty lub godziny program Qlik Sense ignoruje wszelkie parametry czasu letniego, chyba że funkcja daty lub godziny uwzględnia położenie geograficzne.
Na przykład w przypadku zapisu ConvertToLocalTime( filetime('Time.qvd'), 'Paris') czas letni będzie stosowany, a w przypadku zapisu ConvertToLocalTime(filetime('Time.qvd'), 'GMT-01:00') parametry czasu letniego nie będą stosowane.
Przy każdej funkcji znajduje się pole rozwijane umożliwiające wyświetlenie składni i krótkiego opisu funkcji. Kliknij nazwę funkcji w opisie składni, aby uzyskać więcej informacji.
Wyrażenia godziny w liczbach całkowitych
Ta funkcja zwraca liczbę całkowitą reprezentującą sekundy, gdy ułamek expression jest interpretowany jako czas zgodnie ze standardową interpretacją liczb.
second(expression)
Ta funkcja zwraca liczbę całkowitą reprezentującą minuty, gdy ułamek expression jest interpretowany jako czas zgodnie ze standardową interpretacją liczb.
minute(expression)
Ta funkcja zwraca liczbę całkowitą reprezentującą godzinę, gdy ułamek wyrażenia expression jest interpretowany jako czas zgodnie ze standardową interpretacją liczb.
hour(expression)
Ta funkcja zwraca liczbę całkowitą reprezentującą dzień, gdy ułamek wyrażenia expression jest interpretowany jako data zgodnie ze standardową interpretacją liczb.
day(expression)
Ta funkcja zwraca liczbę całkowitą reprezentującą numer tygodnia zgodnie z normą ISO 8601. Numer miesiąca jest obliczany na podstawie interpretacji daty z wyrażenia zgodnie ze standardową interpretacją liczb.
week(expression)
Ta funkcja zwraca wartość podwójną z nazwą miesiąca, jak to zostało określone w zmiennej środowiskowej MonthNames, oraz liczbę całkowitą z przedziału 1–12. Miesiąc jest obliczany na podstawie interpretacji daty z wyrażenia zgodnie ze standardową interpretacją liczb.
month(expression)
Ta funkcja zwraca liczbę całkowitą reprezentującą rok, gdy wyrażenie expression jest interpretowane jako data zgodnie ze standardową interpretacją liczb.
year(expression)
Ta funkcja zwraca rok, do którego należy numer tygodnia zgodnie z normą ISO 8601. Numer tygodnia należy do zakresu od 1 do około 52.
weekyear(expression)
Ta funkcja zwraca wartość podwójną:
- Nazwę dnia zdefiniowaną w zmiennej środowiskowej DayNames.
- Wartość całkowitą od 0 do 6, która odpowiada nominalnemu dniu tygodnia (0-6).
weekday(date)
Funkcje Timestamp
Ta funkcja zwraca znacznik bieżącego czasu. Funkcja zwraca wartości w formacie zmiennej systemowej TimeStamp. Wartością domyślną timer_mode jest 1.
now([ timer_mode])
Ta funkcja zwraca bieżącą datę. Funkcja zwraca wartości w formacie zmiennej systemowej DateFormat.
today([timer_mode])
Ta funkcja zwraca znacznik bieżącego czasu dla podanej strefy czasowej.
localtime([timezone [, ignoreDST ]])
Funkcje Make
Ta funkcja zwraca datę obliczoną na podstawie parametrów rok YYYY, miesiąc MM i dzień DD.
makedate(YYYY [ , MM [ , DD ] ])
Ta funkcja zwraca datę obliczoną na podstawie parametrów rok YYYY, tydzień WW i dzień tygodnia D.
makeweekdate(YYYY [ , WW [ , D ] ])
Ta funkcja zwraca godzinę obliczoną na podstawie parametrów godzina hh, minuta mm i sekunda ss.
maketime(hh [ , mm [ , ss [ .fff ] ] ])
Inne funkcje daty
Ta funkcja zwraca datę występującą n miesięcy po dacie startdate lub, jeśli n jest wartością ujemną, n miesięcy przed datą startdate.
addmonths(startdate, n , [ , mode])
Ta funkcja zwraca datę występującą n lat po dacie startdate lub, jeśli n jest wartością ujemną, n lat przed datą startdate.
addyears(startdate, n)
Ta funkcja sprawdza, czy wejściowy znacznik czasu przypada w roku daty dnia, w którym skrypt został ostatnio załadowany, i zwraca True, jeśli przypada, a False, jeśli nie przypada.
yeartodate(date [ , yearoffset [ , firstmonth [ , todaydate] ] ])
Funkcje Timezone
Ta funkcja zwraca strefę czasową zdefiniowaną na komputerze, na którym działa aparat Qlik.
timezone( )
Ta funkcja zwraca aktualny czas Greenwich Mean Time ustalony na podstawie ustawień regionalnych.
GMT( )
Zwraca bieżącą wartość Coordinated Universal Time.
UTC( )
Zwraca aktualną korektę czasu letniego zdefiniowaną w systemie Windows.
Przekształca znacznik czasu UTC lub GMT na czas lokalny w postaci wartości podwójnej. Parametr place może być dowolnym miastem, miejscem albo strefą czasową z całego świata.
converttolocaltime(timestamp [, place [, ignore_dst=false]])
Funkcje Set time
Ta funkcja przyjmuje jako dane wejściowe wartości z pól timestamp i year i aktualizuje pole timestamp wartością year określoną w danych wejściowych.
setdateyear (timestamp, year)
Ta funkcja przyjmuje jako dane wejściowe wartości z pól timestamp, month i year i aktualizuje pole timestamp wartościami year i month określonymi w danych wejściowych.
setdateyearmonth (timestamp, year, month)
Funkcje In...
Ta funkcja zwraca wartość True, jeśli znacznik czasu timestamp należy do roku zawierającego wartość base_date.
inyear(date, basedate , shift [, first_month_of_year = 1])
Ta funkcja zwraca wartość True, jeśli wartość timestamp należy do części roku zawierającego wartość base_date, z dokładnością do ostatniej milisekundy wartości base_date włącznie.
inyeartodate (date, basedate , shift [, first_month_of_year = 1])
Ta funkcja zwraca wartość True, jeśli wartość timestamp należy do kwartału zawierającego wartość base_date.
inquarter (date, basedate , shift [, first_month_of_year = 1])
Ta funkcja zwraca wartość True, jeśli wartość timestamp należy do części kwartału zawierającego wartość base_date, z dokładnością do ostatniej milisekundy wartości base_date włącznie.
inquartertodate (date, basedate , shift [, first_month_of_year = 1])
Ta funkcja zwraca wartość True, jeśli wartość timestamp należy do miesiąca zawierającego wartość base_date.
inmonth(date, basedate , shift)
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.
inmonthtodate (date, basedate , shift)
Ta funkcja sprawdza, czy znacznik czasu mieści się w tym samym okresie miesięcznym, dwumiesięcznym, kwartalnym, czteromiesięcznym lub półrocznym, jako data bazowa. Można także wyszukać, czy znacznik czasu przypada w okresie poprzednim lub następnym.
inmonths(n, date, basedate , shift [, first_month_of_year = 1])
Ta funkcja wyszukuje, czy znacznik czasu przypada w części okresu miesiąca, dwóch miesięcy, kwartału, czterech miesięcy lub półrocza z dokładnością do jednej milisekundy wartości base_date włącznie. Można także wyszukać, czy znacznik czasu przypada w okresie poprzednim lub następnym.
inmonthstodate (n, date, basedate , shift [, first_month_of_year = 1])
Ta funkcja zwraca wartość True, jeśli wartość timestamp należy do tygodnia zawierającego wartość base_date.
inweek(date, basedate , shift [, weekstart])
Ta funkcja zwraca wartość True, jeśli wartość timestamp należy do części tygodnia zawierającego wartość base_date, z dokładnością do ostatniej milisekundy wartości base_date włącznie.
inweektodate (date, basedate , shift [, weekstart])
Ta funkcja sprawdza, czy wartość timestamp należy do tygodnia księżycowego zawierającego wartość base_date. Tygodnie księżycowe w Qlik Sense są zdefiniowane przez uznanie 1 stycznia za pierwszy dzień tygodnia. Każdy tydzień, z wyjątkiem ostatniego tygodnia roku, będzie zawierał dokładnie siedem dni.
inlunarweek (date, basedate , shift [, weekstart])
Ta funkcja sprawdza, czy wartość timestamp należy do części tygodnia księżycowego do ostatniej milisekundy wartości base_date włącznie. Tygodnie księżycowe w Qlik Sense są zdefiniowane przez uznanie 1 stycznia za pierwszy dzień tygodnia i każdy tydzień, z wyjątkiem ostatniego tygodnia roku, będzie zawierał dokładnie siedem dni.
inlunarweektodate (date, basedate , shift [, weekstart])
Ta funkcja zwraca wartość True, jeśli znacznik czasu timestamp należy do dnia zawierającego wartość base_timestamp.
inday(timestamp, basetimestamp , shift [, daystart])
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.
indaytotime(timestamp, basetimestamp , shift [, daystart])
Funkcje Start ... end
Ta funkcja zwraca znacznik czasu odpowiadający rozpoczęciu się pierwszego dnia roku zawierającego wartość date. Domyślnym formatem wyjściowym będzie format DateFormat skonfigurowany w skrypcie.
yearstart( date [, shift = 0 [, first_month_of_year = 1]])
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu ostatniej milisekundy ostatniego dnia roku zawierającego wartość date. Domyślnym formatem wyjściowym będzie format DateFormat skonfigurowany w skrypcie.
yearend( date [, shift = 0 [, first_month_of_year = 1]])
Ta funkcja zwraca rok w zapisie czterocyfrowym jako wartość wyświetlaną z bazową wartością liczbową odpowiadającą znacznikowi czasu pierwszej milisekundy pierwszego dnia roku zawierającego datę date.
yearname(date [, shift = 0 [, first_month_of_year = 1]] )
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu pierwszej milisekundy kwartału zawierającego wartość date. Domyślnym formatem wyjściowym będzie format DateFormat skonfigurowany w skrypcie.
quarterstart(date [, shift = 0 [, first_month_of_year = 1]])
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu ostatniej milisekundy kwartału zawierającego wartość date. Domyślnym formatem wyjściowym będzie format DateFormat skonfigurowany w skrypcie.
quarterend(date [, shift = 0 [, first_month_of_year = 1]])
Ta funkcja zwraca wartość pokazującą miesiące kwartału (sformatowane zgodnie ze stosowaną w skryptach zmienną MonthNames) oraz rok z bazową wartością liczbową odpowiadającą znacznikowi czasu pierwszej milisekundy pierwszego dnia tego kwartału.
quartername(date [, shift = 0 [, first_month_of_year = 1]])
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu pierwszej milisekundy ostatniego dnia miesiąca zawierającego wartość date. Domyślnym formatem wyjściowym będzie format DateFormat skonfigurowany w skrypcie.
monthstart(date [, shift = 0])
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu ostatniej milisekundy ostatniego dnia miesiąca zawierającego wartość date. Domyślnym formatem wyjściowym będzie format DateFormat skonfigurowany w skrypcie.
monthend(date [, shift = 0])
Ta funkcja zwraca wartość pokazującą miesiąc (sformatowany zgodnie ze stosowaną w skryptach zmienną MonthNames) oraz rok z bazową wartością liczbową odpowiadającą znacznikowi czasu pierwszej milisekundy pierwszego dnia tego miesiąca.
monthname(date [, shift = 0])
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu pierwszej milisekundy okresu miesiąca, dwóch miesięcy, kwartału, czterech miesięcy lub półrocza, który zawiera datę bazową. Można także wyszukać znacznik czasu dla okresu poprzedniego lub następnego.Domyślnym formatem wyjściowym będzie format DateFormat skonfigurowany w skrypcie.
monthsstart(n, date [, shift = 0 [, first_month_of_year = 1]])
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu ostatniej milisekundy okresu miesiąca, dwóch miesięcy, kwartału, czterech miesięcy lub półrocza, który zawiera datę bazową. Można także wyszukać znacznik czasu dla okresu poprzedniego lub następnego.
monthsend(n, date [, shift = 0 [, first_month_of_year = 1]])
Ta funkcja zwraca wartość reprezentującą zakres miesięcy w okresie (sformatowany zgodnie ze stosowaną w skryptach zmienną MonthNames), a także rok. Bazowa wartość liczbowa odpowiada znacznikowi czasu pierwszej milisekundy okresu miesiąca, dwóch miesięcy, kwartału, czterech miesięcy lub półrocza, który zawiera datę bazową.
monthsname(n, date [, shift = 0 [, first_month_of_year = 1]])
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu pierwszej milisekundy pierwszego dnia tygodnia kalendarzowego zawierającego wartość date. Domyślnym formatem wyjściowym będzie format DateFormat skonfigurowany w skrypcie.
weekstart(date [, shift = 0 [,weekoffset = 0]])
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu ostatniej milisekundy ostatniego dnia (niedzieli) tygodnia kalendarzowego, który zawiera wartość date. Domyślnym formatem wyjściowym będzie format DateFormat skonfigurowany w skrypcie.
weekend(date [, shift = 0 [,weekoffset = 0]])
Ta funkcja zwraca wartość pokazującą rok i numer tygodnia z bazową wartością liczbową odpowiadającą znacznikowi czasu pierwszej milisekundy pierwszego dnia tygodnia, który zawiera datę date.
weekname(date [, shift = 0 [,weekoffset = 0]])
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu pierwszej milisekundy pierwszego dnia tygodnia księżycowego zawierającego wartość date. Tygodnie księżycowe w Qlik Sense są zdefiniowane przez uznanie 1 stycznia za pierwszy dzień tygodnia i każdy tydzień, z wyjątkiem ostatniego tygodnia roku, będzie zawierał dokładnie siedem dni.
lunarweekstart(date [, shift = 0 [,weekoffset = 0]])
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu ostatniej milisekundy ostatniego dnia tygodnia księżycowego zawierającego wartość date. Tygodnie księżycowe w Qlik Sense są zdefiniowane przez uznanie 1 stycznia za pierwszy dzień tygodnia i każdy tydzień, z wyjątkiem ostatniego tygodnia roku, będzie zawierał dokładnie siedem dni.
lunarweekend(date [, shift = 0 [,weekoffset = 0]])
Ta funkcja zwraca wartość pokazującą rok i numer tygodnia księżycowego odpowiadający znacznikowi czasu pierwszej milisekundy pierwszego dnia tygodnia księżycowego zawierającego wartość date. Tygodnie księżycowe w Qlik Sense są zdefiniowane przez uznanie 1 stycznia za pierwszy dzień tygodnia i każdy tydzień, z wyjątkiem ostatniego tygodnia roku, będzie zawierał dokładnie siedem dni.
lunarweekname(date [, shift = 0 [,weekoffset = 0]])
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu dla pierwszej milisekundy dnia zawartego w argumencie time. Domyślnym formatem wyjściowym będzie format TimestampFormat skonfigurowany w skrypcie.
daystart(timestamp [, shift = 0 [, dayoffset = 0]])
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu dla ostatniej milisekundy dnia określonego przez parametr time. Domyślnym formatem wyjściowym będzie format TimestampFormat skonfigurowany w skrypcie.
dayend(timestamp [, shift = 0 [, dayoffset = 0]])
Ta funkcja zwraca wartość pokazującą datę z bazową wartością liczbową odpowiadającą znacznikowi czasu dla pierwszej milisekundy dnia określonego przez parametr time.
dayname(timestamp [, shift = 0 [, dayoffset = 0]])
Funkcje numerowania dni
Funkcja age zwraca wiek w momencie określonym przez parametr timestamp (w liczbie ukończonych lat) osoby urodzonej w dniu date_of_birth.
age(timestamp, date_of_birth)
Funkcja networkdays zwraca liczbę dni roboczych (poniedziałek–piątek) od start_date do end_date włącznie z uwzględnieniem opcjonalnych dni wolnych (holiday).
networkdays (start:date, end_date {, holiday})
Funkcja firstworkdate zwraca najpóźniejszą datę rozpoczęcia, gdy możliwe jest uzyskanie parametru no_of_workdays (poniedziałek–piątek) z końcem nie później niż w dniu określonym przez parametr end_date oraz z uwzględnieniem wszelkich opcjonalnie wyszczególnionych dni wolnych. Parametry end_date i holiday powinny być poprawnymi datami lub znacznikami czasu.
firstworkdate(end_date, no_of_workdays {, holiday} )
Funkcja lastworkdate zwraca najwcześniejszą datę zakończenia, gdy możliwe jest uzyskanie parametru no_of_workdays (poniedziałek–piątek) z początkiem w dniu start_date z uwzględnieniem wszelkich opcjonalnie wyszczególnionych dni wolnych (holiday). Parametry start_date i holiday powinny być poprawnymi datami lub znacznikami czasu.
lastworkdate(start_date, no_of_workdays {, holiday})
Ta funkcja oblicza numer dnia roku, w którym przypada znacznik czasu. Obliczenie jest wykonywane od pierwszej milisekundy pierwszego dnia roku, ale pierwszy miesiąc może być przesunięty.
daynumberofyear(date[,firstmonth])
Ta funkcja oblicza numer dnia kwartału, w którym przypada znacznik czasu. Ta funkcja służy do tworzenia kalendarza głównego.
daynumberofquarter(date[,firstmonth])