Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu pierwszej milisekundy okresu miesiąca, dwóch miesięcy, kwartału, jednej trzeciej roku lub półrocza, który zawiera datę bazową. Można także wyszukać znacznik czasu dla okresu poprzedniego lub następnego.
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
monthsstart(4, '19/10/2013')
Zwraca wartość 1/09/2013.
monthsstart(4, '19/10/2013, -1)
Zwraca wartość 01/05/2013.
monthsstart(4, '19/10/2013', 0, 2 )
Zwraca wartość 01/10/2013. Ponieważ początkiem roku staje się miesiąc 2.
Dodaj skrypt przykładowy do aplikacji i uruchom ją. Następnie dodaj do arkusza w swojej aplikacji co najmniej pola wyszczególnione w kolumnie wyników, aby wyświetlić wynik.
W tym przykładzie wyszukiwany jest pierwszy dzień dwumiesięcznego okresu dla każdej daty faktury, przesuniętego do przodu o jeden okres dwóch miesięcy.
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 *,
MonthsStart(2, InvDate, 1) AS BiMthsStart
Resident TempTable;
Drop table TempTable;
Otrzymana tabela zawiera pierwotne daty i kolumnę ze zwracaną wartością funkcji MonthsStart().