Funkcje daty i czasu
Funkcje daty i godziny aplikacji QlikView służą do przekształcania i konwertowania wartości daty i czasu. Wszystkie funkcje mogą być stosowane zarówno w skryptach ładowania, jak i wyrażeniach wykresu.
Funkcje opierają się na numerze seryjnym data-godzina, równym liczbie dni od 30 grudnia 1899 r. Wartość całkowita reprezentuje dzień i ułamkową wartość reprezentującą godzinę.
W aplikacji QlikView 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 QlikView 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 QlikView nie dokona prawidłowej interpretacji. W celu rozwiązania tego problemu należy 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 QlikView ignoruje parametry czasu letniego, chyba że w funkcji daty lub godziny uwzględnione jest położenie geograficzne.
Na przykład w przypadku funkcji ConvertToLocalTime( filetime('Time.qvd'), 'Paris') użyte zostałyby parametry czasu letniego, natomiast w funkcji ConvertToLocalTime(filetime('Time.qvd'), 'GMT-01:00') parametry czasu letniego nie zostałyby użyte.
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ą sekundę, gdy ułamek wyrażenia expression jest interpretowany jako czas zgodnie ze standardową interpretacją liczb.
second(expression)
Ta funkcja zwraca liczbę całkowitą reprezentującą minutę, gdy ułamek wyrażenia 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 tygodnia jest obliczany na podstawie interpretacji daty z wyrażenia zgodnie ze standardową interpretacją liczb.
week(timestamp [, first_week_day [, broken_weeks [, reference_day]]])
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. Numer miesiąca 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 parametr expression jest interpretowany 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ą zawierającą: Nazwę dnia zgodnie z definicją w zmiennej środowiskowej DayNames. Liczbę całkowitą z przedziału 0–6 odpowiadającą nominalnemu dniu tygodnia (0–6).
weekday(date)
Funkcje Timestamp
Ta funkcja zwraca znacznik bieżącego czasu z zegara systemowego. Wartością domyślną jest 1.
now([ timer_mode])
Ta funkcja zwraca bieżącą datę z zegara systemowego.
today([timer_mode])
Ta funkcja zwraca znacznik bieżącego czasu z zegara systemowego 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 wyszukuje, czy data wejściowa przypada w roku zawierającym datę ostatniego załadowania skryptu. Jeśli tak jest, zwraca wartość True, a w przeciwnym wypadku zwraca wartość False.
yeartodate(timestamp [ , yearoffset [ , firstmonth [ , todaydate] ] ])
Funkcje Timezone
Ta funkcja zwraca nazwę bieżącej strefy czasowej zdefiniowanej w systemie Windows bez uwzględnienia korekty czasu letniego.
timezone( )
Ta funkcja zwraca datę i aktualny czas Greenwich Mean Time ustalony na podstawie zegara systemowego i ustawień czasu w systemie Windows.
GMT( )
Zwraca datę i aktualny czas 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. Miejsce może być dowolnym miastem lub 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 wartość 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ść timestamp należy do części miesiąca zawierającego wartość base_date z dokładnością do jednej milisekundy wartości base_date włącznie.
inmonthtodate (date, basedate , shift)
Ta funkcja wykrywa, czy znacznik czasu przypada w tym samym miesiącu bądź okresie dwu-, trzy- lub czteromiesięcznym albo półrocznym co 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 wykrywa, czy znacznik czasu przypada w części okresu miesiąca, dwóch miesięcy, kwartału, okresu czteromiesięcznego lub półrocza do ostatniej 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 zwraca wartość true, jeśli wartość timestamp należy do tygodnia księżycowego zawierającego wartość base_date. Tygodnie księżycowe w QlikView są określane tak, że 1 stycznia jest uznawany za pierwszy dzień tygodnia.
inlunarweek (date, basedate , shift [, weekstart])
Ta funkcja zwraca wartość true, jeśli wartość timestamp należy do części tygodnia księżycowego do ostatniej milisekundy wartości base_date włącznie. Tygodnie księżycowe w QlikView są określane tak, że 1 stycznia jest uznawany za pierwszy dzień tygodnia.
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 wartość pokazującą rok w zapisie czterocyfrowym jako wartość wyświetlaną z bazową wartością liczbową odpowiadającą znacznikowi czasu pierwszej milisekundy pierwszego dnia roku zawierającego wartość 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, okresu czteromiesięcznego lub półrocza zawierającego datę bazową. Można także wyszukać znacznik czasu dla okresu poprzedniego lub następnego.
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, okresu czteromiesięcznego 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, okresu czteromiesięcznego lub półrocza zawierającego datę bazową.
monthsname(n, date [, shift = 0 [, first_month_of_year = 1]])
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu pierwszej milisekundy pierwszego dnia (poniedziałku) tygodnia kalendarzowego zawierającego wartość date. Domyślnym formatem wyjściowym jest 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 zawierającego 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 dla pierwszej milisekundy dnia określonego przez parametr date.
weekname(date [, shift = 0 [,weekoffset = 0]])
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu pierwszej milisekundy tygodnia księżycowego zawierającego wartość date. Tygodnie księżycowe w QlikView są określane tak, że 1 stycznia jest uznawany za pierwszy dzień tygodnia.
lunarweekstart(date [, shift = 0 [,weekoffset = 0]])
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu ostatniej milisekundy tygodnia księżycowego zawierającego wartość date. Tygodnie księżycowe w QlikView są określane tak, że 1 stycznia jest uznawany za pierwszy dzień tygodnia.
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 QlikView są określane tak, że 1 stycznia jest uznawany za pierwszy dzień tygodnia.
lunarweekname(date [, shift = 0 [,weekoffset = 0]])
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu dla pierwszej milisekundy dnia zawartego w parametrze 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 wartości start_date do wartości 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.
daynumberofquarter(date[,firstmonth])