Bu fonksiyon, bir zaman damgasının ayın, iki ayın, üç ayın, dört ayın veya altı ayın parçası ve base_date'in son milisaniyesi içinde olup olmadığını bulur. Zaman damgasının önceki veya sonraki bir zaman dönemine denk gelip gelmediğini bulmak da mümkündür.
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).
timestamp
base_date ile karşılaştırmak istediğiniz tarih.
base_date
Dönemi değerlendirmek için kullanılan 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ç
inmonthstodate(4, '25/01/2013', '25/04/2013', 0)
True döndürür. Çünkü timestamp değeri (25/01/2013) 01/01/2013 tarihinden itibaren 25/04/2013 sonuna kadarki dört aylık dönem içinde yer almaktadır ve base_date değeri 25/04/2013 de bu dönem içindedir.
inmonthstodate(4, '26/04/2013', '25/04/2006', 0)
False döndürür. Çünkü 26/04/2013 yukarıdaki örnekte verilen aynı dönemin dışındadır.
inmonthstodate(4, '25/09/2005', '01/02/2006', -1)
True döndürür. Çünkü period_no için -1 değeri, arama dönemini dört aylık bir dönem kadar (n-months değeri) geriye kaydırır ve bu da arama dönemini 01/09/2005 ile 01/02/2006. tarihleri arasına getirir.
True döndürür. Çünkü first_month_of_year değeri 3 olarak ayarlanmıştır ve bu da arama dönemini 01/03/2006 ile 01/06/2006 tarihleri arasına getirir (01/05/2006 ila 01/06/2006 aralığı yerine).
Örnek:
Örnek kodu uygulamanıza ekleyin ve çalıştırın. Sonucu görmek için, sonuçlar sütununda listelenen alanları uygulamanızda bir sayfaya ekleyin.
Bu örnek, tablodaki fatura tarihinin, ikişer aylık dört dönem kadar kaydırılan (period_no değerinin 4 olarak belirtilmesiyle) base_date değerine kadarki (bu tarih dahil) iki aylık dönem bölümüne denk gelip gelmediğini kontrol eder.
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 *,
InMonthsToDate(2, InvDate, '15/02/2013', 4) AS InMths2DPlus4
Resident TempTable;
Drop table TempTable;
Sonuçta ortaya çıkan tabloda orijinal tarihler ve InMonths() fonksiyonunun döndürdüğü değeri içeren bir sütun yer alır.
Arama dönemi 01/09/2013 ile 15/10/2013 tarihleri arasındadır; çünkü base_date değeri fonksiyondaki değerden (15/02/2013) sekiz ay ileri kaydırılmaktadır.
Sonuçlar tablosu
InvDate
InMths2DPlus4
28/03/2012
0 (False)
10/12/2012
0 (False)
5/2/2013
0 (False)
31/3/2013
0 (False)
19/5/2013
0 (False)
15/9/2013
-1 (True)
11/12/2013
0 (False)
2/3/2014
0 (False)
14/5/2014
0 (False)
13/6/2014
0 (False)
7/7/2014
0 (False)
4/8/2014
0 (False)
Bu sayfa size yardımcı oldu mu?
Bu sayfa veya içeriği ile ilgili bir sorun; bir yazım hatası, eksik bir adım veya teknik bir hata bulursanız, bize bildirin, düzeltelim!