# inmonthstodate - kod ve grafik fonksiyonu

Bu fonksiyon bir zaman damgasının aylık, iyi aylık, üç aylık, dört aylık veya yarı yıllık bir dönemin base\_date tarihinin son milisaniyesi de dahil olan kısmı içinde mi kaldığını bulur. Zaman damgasının önceki veya sonraki bir zaman dönemine denk gelip gelmediğini bulmak da mümkündür.

Söz Dizimi:

InMonths (n\_months, timestamp, base\_date, period\_no[, first\_month\_of\_year ])

**Dönüş veri türü:** Boole

Bağımsız Değişkenler:

InMonthsToDate bağımsız değişkenleri

| Bağımsız Değişken | Açıklama |
| --- | --- |
| n\_months | Dönemi tanımlayan ayların sayısı. Şunlardan biri olması gereken bir tamsayıya çözümlenen bir tamsayı ya da ifade: 1 (inmonth() fonksiyonunun eşdeğeri), 2 (iki aylık), 3 (inquarter() fonksiyonunun eşdeğeri), 4 (dört aylık dönem) veya 6 (yarı yıl). |
| 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. |

Örnekler ve sonuçlar:

Bu örneklerde GG/AA/YYYY tarih biçimi kullanılmaktadır. Tarih biçimi, kod dosyanızın en başında SET DateFormat deyimi içinde belirtilir. Örneklerdeki biçimi gereksinimlerinize uyacak şekilde değiştirin.

Örnek 1:

`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.

Örnek 2:

`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.

Örnek 3:

`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.

Örnek 4:

`inmonthstodate(4, '25/04/2006', '01/06/2006',   0, 3)`

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 5:

Örnek kodu belgenize ekleyin ve çalıştırın. Ardından, sonucu görmek için belgenizdeki bir sayfaya en azından sonuçlar sütununda listelenen alanları 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.

Örnek 5 sonuçları

| 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) |