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, jednej trzeciej roku lub półrocza, który zawiera datę bazową.
Liczba miesięcy określająca okres. Wartość całkowita lub wyrażenie, którego wynikiem jest jedna z następujących wartości całkowitych: 1 (równoważnik funkcji inmonth()), 2 (dwa miesiące), 3 (równoważnik funkcji inquarter()), 4 (cztery miesiące) lub 6 (pół roku).
date
Data do oceny.
period_no
Okres może być przesunięty o wartość period_no — liczbę całkowitą lub wyrażenie, którego wynikiem jest liczba całkowita, gdzie wartość 0 wskazuje dzień zawierający wartość base_date. Wartości ujemne parametru period_no oznaczają okresy poprzednie, a wartości dodatnie — okresy następne.
first_month_of_year
Jeśli użytkownik zamierza korzystać z lat (obrotowych), które nie zaczynają się w styczniu, powinien wskazać wartość od 2 do 12 jako parametr first_month_of_year.
W tych przykładach używany jest format daty DD/MM/YYYY. Format daty jest określony w instrukcji SET DateFormat u góry skryptu ładowania danych. Format zastosowany w przykładach można zmienić, aby dostosować go do konkretnych potrzeb.
Przykłady skryptów
Przykład
Wynik
monthsname(4, '19/10/2013')
Zwraca wartość Sep-Dec 2013. Ponieważ w tym i innych przykładach instrukcja SET Monthnames jest ustawiona na wartość Jan;Feb;Mar itd.
monthsname(4, '19/10/2013', -1)
Zwraca wartość May-Aug 2013.
monthsname(4, '19/10/2013', 0, 2)
Zwraca wartość Oct-Jan 2014. Ponieważ określono, że rok zaczyna się w miesiącu 2, okres czterech miesięcy kończy się w pierwszym miesiącu roku następnego.
Przykład:
Dodaj skrypt przykładowy do aplikacji i uruchom ją. Aby zobaczyć wynik, dodaj do arkusza w swojej aplikacji pola wyszczególnione w kolumnie wyników.
W tym przykładzie dla każdej daty faktury w tabeli nazwa miesięcy jest tworzona z zakresu miesięcy w okresie dwumiesięcznym oraz z roku. Zakres jest przesunięty o 4x2 miesiące przez określenie wartości period_no jako 4.
TempTable:
LOAD RecNo() as InvID, * Inline [
InvDate
28/03/2012
10/12/2012
5/2/2013
31/3/2013
19/5/2013
15/9/2013
11/12/2013
2/3/2014
14/5/2014
13/6/2014
7/7/2014
4/8/2014
];
InvoiceData:
LOAD *,
MonthsName(2, InvDate, 4) AS MthsName
Resident TempTable;
Drop table TempTable;
Otrzymana tabela zawiera pierwotne daty i kolumnę ze zwracaną wartością funkcji monthsname().
Tabela wynikowa
InvDate
MthsName
28/03/2012
Nov-Dec 2012
10/12/2012
Jul-Aug 2013
5/2/2013
Sep-Oct 2013
31/3/2013
Nov-Dec2013
19/5/2013
Jan-Feb 2014
15/9/2013
May-Jun 2014
11/12/2013
Jul-Aug 2014
2/3/2014
Nov-Dec 2014
14/5/2014
Jan-Feb 2015
13/6/2014
Jan-Feb 2015
7/7/2014
Mar-Apr 2015
4/8/2014
Mar-Apr 2015
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ć!