# makedate - kod ve grafik fonksiyonu

Bu fonksiyon YYYY yılı, MM ayı ve DD gününden hesaplanan bir tarih döndürür.

Söz Dizimi:

MakeDate(YYYY [ , MM [ , DD ] ])

Dönüş verileri türü: dual

Bağımsız Değişkenler

| Bağımsız Değişken | Açıklama |
| --- | --- |
| YYYY | Tamsayı olarak yıl. |
| MM | Tamsayı olarak ay. Ay belirtilmezse 1 (Ocak) olduğu varsayılır. |
| DD | Tamsayı olarak gün. Gün belirtilmezse 1. (birinci) gün olduğu varsayılır. |

## Ne zaman kullanılır?

Kodda `makedate()` fonksiyonu genellikle bir takvim oluşturmak amacıyla veri oluşturma işleminde kullanılır. Bu fonksiyon, date alanı doğrudan tarih olarak kullanılamadığında ve yıl ay ve gün bileşenlerini ayıklamak üzere bazı dönüştürmeler yapılması gerektiğinde de kullanılabilir.

Bu örnekler AA/GG/YYYY tarih biçimini kullanır. Tarih biçimi, veri yükleme komut dosyanızın en üstündeki `SET DateFormat` deyiminde belirtilir. Örneklerdeki biçimi gereksinimlerinize uyacak şekilde değiştirin.

Fonksiyon örnekleri

| Örnek | Sonuç |
| --- | --- |
| `makedate(2012)` | 01/01/2012 döndürür. |
| `makedate(12)` | 01/01/2012 döndürür. |
| `makedate(2012,12)` | 12/01/2012 döndürür. |
| `makedate(2012,2,14)` | 02/14/2012 döndürür. |

## Bölgesel ayarlar

Aksi belirtilmedikçe bu konudaki örneklerde aşağıdaki tarih formatı kullanılır: AA/GG/YYYY. Tarih formatı, veri yükleme kodunuzda `SET DateFormat` deyiminde belirtilir. Varsayılan tarih formatı, bölgesel ayarlarınız ve diğer unsurlar nedeniyle sisteminizde farklı olabilir. Aşağıdaki örneklerdeki formatları ihtiyaçlarınıza uyacak şekilde değiştirebilirsiniz. Dilerseniz yükleme kodunuzdaki formatları aşağıdaki örneklere uyacak şekilde değiştirebilirsiniz.

Uygulamalardaki bölgesel ayarlarda Qlik Sense'in yüklü olduğu bilgisayarın veya sunucunun bölgesel sistem ayarları temel alınır. Eriştiğiniz Qlik Sense sunucusu İsveç olarak ayarlıysa, Veri yükleme düzenleyicisi tarihler, saat ve para birimi için İsveç bölgesel ayarlarını kullanır. Bu bölgesel format ayarları, Qlik Sense kullanıcı arayüzünde görüntülenen dil ayarlarıyla ilgili değildir. Qlik Sense, kullandığınız tarayıcıyla aynı dilde görüntülenir.

## Örnek 1 – Temel örnek

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/makedate.htm)

#### Komut dosyası ve sonuçlar

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.

Yükleme kodu şunları içerir:

* `Transactions` adlı tabloya yüklenen, 2018'nin işlemlerini içeren bir veri kümesi.

* Tarih alanı `DateFormat` sistem değişkeninde (AA/GG/YYYY) biçiminde sağlanmıştır.

* AA/GG/YYYY biçiminde bir tarih döndüren `transaction_date` alanını oluşturma.

Komut dosyası

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        makedate(transaction_year, transaction_month, transaction_day) as transaction_date
        ; 
Load * Inline [
transaction_id, transaction_year, transaction_month, transaction_day, transaction_amount, transaction_quantity, customer_id
3750, 2018, 08, 30, 12423.56, 23, 2038593
3751, 2018, 09, 07, 5356.31, 6, 203521
3752, 2018, 09, 16, 15.75, 1, 5646471
3753, 2018, 09, 22, 1251, 7, 3036491
3754, 2018, 09, 22, 21484.21, 1356, 049681
3756, 2018, 09, 22, -59.18, 2, 2038593
3757, 2018, 09, 23, 3177.4, 21, 203521
];
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* `transaction_year`

* `transaction_month`

* `transaction_day`

* `transaction_date`

Sonuçlar tablosu

| transaction\_year | transaction\_month | transaction\_day | transaction\_date |
| --- | --- | --- | --- |
| 2018 | 08 | 30 | 08/30/2018 |
| 2018 | 09 | 07 | 09/07/2018 |
| 2018 | 09 | 16 | 09/16/2018 |
| 2018 | 09 | 22 | 09/22/2018 |
| 2018 | 09 | 23 | 09/23/2018 |

`transaction_date` alanı, önceki yükleme deyiminde `makedate()` fonksiyonu kullanılarak ve fonksiyon bağımsız değişkenleri olarak year, month ve day alanları geçirilerek oluşturulur.

Ardından fonksiyon bu alanları birleştirip bir tarih alanına dönüştürür ve sonuçları `DateFormat` sistem değişkeninin biçiminde döndürür.

## Örnek 2 – Değiştirilmiş Tarih Biçimi

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/makedate.htm)

#### Komut dosyası ve sonuçlar

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.

Yükleme kodu şunları içerir:

* İlk örnek ile aynı veri kümesi ve senaryo.

* `DateFormat` sistem değişkeninde değişiklik yapmadan GG/AA/YYYY biçiminde bir `transaction_date` alanı oluşturma.

Komut dosyası

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        date(makedate(transaction_year, transaction_month, transaction_day), ‘DD/MM/YYYY’) as transaction_date
        ; 
Load * Inline [
transaction_id, transaction_year, transaction_month, transaction_day, transaction_amount, transaction_quantity, customer_id
3750, 2018, 08, 30, 12423.56, 23, 2038593
3751, 2018, 09, 07, 5356.31, 6, 203521
3752, 2018, 09, 16, 15.75, 1, 5646471
3753, 2018, 09, 22, 1251, 7, 3036491
3754, 2018, 09, 22, 21484.21, 1356, 049681
3756, 2018, 09, 22, -59.18, 2, 2038593
3757, 2018, 09, 23, 3177.4, 21, 203521
];
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* `transaction_year`

* `transaction_month`

* `transaction_day`

* `transaction_date`

Sonuçlar tablosu

| transaction\_year | transaction\_month | transaction\_day | transaction\_date |
| --- | --- | --- | --- |
| 2018 | 08 | 30 | 30/08/2018 |
| 2018 | 09 | 07 | 07/09/2018 |
| 2018 | 09 | 16 | 16/09/2018 |
| 2018 | 09 | 22 | 22/09/2018 |
| 2018 | 09 | 23 | 23/09/2018 |

Bu örnekte `makedate()` fonksiyonu `date()` fonksiyonunun içine yerleştirilmiştir. `date()` fonksiyonunun ikinci bağımsız değişkeni, `makedate()` fonksiyonunun sonuçlarını ayarlayarak gereken GG/AA/YYYY biçiminde olmasını sağlar.

## Örnek 3 – Grafik nesnesi örneği

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/makedate.htm)

#### Komut dosyası ve grafik ifadesi

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.

Yükleme kodu şunları içerir:

* `Transactions` adlı tabloya yüklenen, 2018'nin işlemlerini içeren bir veri kümesi.

* İki alanda sağlanan işlem tarihleri: `year` ve `month`.

AA/GG/YYYY biçiminde bir tarih döndüren `transaction_date` grafik nesnesi hesaplamasını oluşturun.

Yükleme kodu

```
SET DateFormat='MM/DD/YYYY';

Transactions:
Load * Inline [
transaction_id, transaction_year, transaction_month, transaction_amount, transaction_quantity, customer_id
3750, 2018, 08, 12423.56, 23, 2038593
3751, 2018, 09, 5356.31, 6, 203521
3752, 2018, 09, 15.75, 1, 5646471
3753, 2018, 09, 1251, 7, 3036491
3754, 2018, 09, 21484.21, 1356, 049681
3756, 2018, 09, -59.18, 2, 2038593
3757, 2018, 09, 3177.4, 21, 203521
];
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* `year`

* `month`

`transaction_date` değerini belirlemek için şu hesaplamayı oluşturun:

`=makedate(transaction_year,transaction_month)`

Sonuçlar tablosu

| transaction\_year | transaction\_month | transaction\_date |
| --- | --- | --- |
| 2018 | 08 | 08/01/2018 |
| 2018 | 09 | 09/01/2018 |

`transaction_date` hesaplaması, grafik nesnesinde `makedate()` fonksiyonu kullanılarak ve fonksiyonun bağımsız değişkenleri olarak year ve month alanları geçirilerek oluşturulur.

Ardından fonksiyon bu değerleri ve varsayılan gün değeri olan 01'i birleştirir. Ardından bu değerler bir tarih alanını dönüştürülür ve sonuçlar `DateFormat` sistem değişkeninin biçiminde döndürülür.

## Örnek 4 – Senaryo

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/makedate.htm)

#### Komut dosyası ve grafik ifadesi

Genel bakış

2022 takvim yılı için bir takvim veri kümesi oluşturun.

Yükleme kodu

```
SET DateFormat='MM/DD/YYYY';

Calendar:
	load 
		*
    where year(date)=2022;
load
	date(recno()+makedate(2021,12,31)) as date
AutoGenerate 400;
```

Sonuçlar

Sonuçlar tablosu

| tarih |
| --- |
| 01/01/2022 |
| 01/02/2022 |
| 01/03/2022 |
| 01/04/2022 |
| 01/05/2022 |
| 01/06/2022 |
| 01/07/2022 |
| 01/08/2022 |
| 01/09/2022 |
| 01/10/2022 |
| 01/11/2022 |
| 01/12/2022 |
| 01/13/2022 |
| 01/14/2022 |
| 01/15/2022 |
| 01/16/2022 |
| 01/17/2022 |
| 01/18/2022 |
| 01/19/2022 |
| 01/20/2022 |
| 01/21/2022 |
| 01/22/2022 |
| 01/23/2022 |
| 01/24/2022 |
| 01/25/2022 |
| + 340 satır daha |

makedate() fonksiyonu 31 Ocak 2021 için bir tarih değeri oluşturur. recno() fonksiyonu, 1'den başlayarak tabloya yüklenmekte olan geçerli kaydın kayıt numarasını sağlar. Bu nedenle ilk kaydın tarihi 1 Ocak 2022 olur. Bunu izleyen her recno(), bu tarihi 1 artırır. Bu ifade, değeri tarihe dönüştürmek için bir date() fonksiyonunda birleştirilir. Bu işlem, autogenerate fonksiyonu tarafından 400 kez tekrarlanır. Son olarak, önceki bir yükleme kullanılarak yalnızca 2022 yılının tarihlerini yüklemek için where koşulu kullanılabilir. Bu kod 2022'deki tüm tarihleri içeren bir takvim oluşturulur.