Bu fonksiyon, dönemin ay aralığının (MonthNames kod değişkenine göre biçimlendirilmiş) yanı sıra yılı temsil eden bir görüntü değeri döndürür. Temel sayısal değer; ayın, iki ayın, üç ayın, dört ayın veya altı ayın temel tarih içeren ilk milisaniyesinin zaman damgasına karşılık gelir.
Dönemi tanımlayan ayların sayısı. Şunlardan biri olması gereken bir tamsayı veya bir tamsayıya çözümlenen bir ifade: 1 (inmonth() fonksiyonuna eşdeğer), 2 (iki aylık), 3 (inquarter() fonksiyonuna eşdeğer), 4 (dört aylık), or 6 (altı aylık).
date
Değerlendirilecek tarih.
period_no
Dönem period_no ile kaydırılabilir. Bu değer bir tamsayı ya da tamsayıya çözümlenen bir ifadedir ve burada 0 değeri base_date içeren dönemi belirtir. period_no içindeki negatif değerler önceki dönemleri; pozitif değerler ise sonraki dönemleri gösterir.
first_month_of_year
Ocak'ta başlamayan (mali) yıllarla çalışmak istiyorsanız, first_month_of_year içinde 2 ile 12 arasında bir değer belirtin.
Bu örnekler DD/MM/YYYY tarih biçimini kullanır. Tarih biçimi, veri kod dosyanızın en üstündeki SET DateFormat deyiminde belirtilir. Örneklerdeki biçimi gereksinimlerinize uyacak şekilde değiştirin.
Kod örnekleri
Örnek
Sonuç
monthsname(4, '19/10/2013')
'Sep-Dec 2013 döndürür. Çünkü bu ve diğer örneklerde SET Monthnames deyimi Jan;Feb;Mar vs. olarak ayarlanmıştır.
monthsname(4, '19/10/2013', -1)
'May-Aug 2013 döndürür.
monthsname(4, '19/10/2013', 0, 2)
Oct-Jan 2014 döndürür. Çünkü yılın 2. ayda başladığı belirtilmektedir. Bu nedenle, dört aylık dönem takip eden yılın birinci ayında sona erer.
Example:
Örnek kodu uygulamanıza ekleyin ve çalıştırın. Sonra sonucu görmek için sonuçlar sütununda listelenen alanları uygulamanızdaki bir sayfaya ekleyin.
Bu örnekte, tablodaki her bir fatura tarihi için, iki aylık dönemdeki ay aralığından ve yıldan ay adı oluşturulur. Aralık 4x2 ay kadar kaydırılmıştır (period_no değerinin 4 olarak belirtilmesiyle).
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;
Sonuçta ortaya çıkan tabloda orijinal tarihler ve monthsname() fonksiyonunun döndürdüğü değeri içeren bir sütun yer alır.