# maketime - kod ve grafik fonksiyonu

Bu fonksiyon hh saati, mm dakikası ve ss saniyesinden hesaplanan bir saat döndürür.

Söz Dizimi:

MakeTime(hh [ , mm [ , ss ] ])

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

Bağımsız Değişkenler

| Bağımsız Değişken | Açıklama |
| --- | --- |
| hh | Tamsayı olarak saat. |
| mm | Tamsayı olarak dakika.<br><br>Dakika belirtilmezse 00 olduğu varsayılır. |
| ss | Tamsayı olarak saniye.<br><br>Saniye belirtilmezse 00 olduğu varsayılır. |

## Ne zaman kullanılır?

`maketime()` fonksiyonu genel olarak veri oluşturma kodunda bir saat alanı oluşturmak için kullanılabilir. Bazı durumlarda saat alanı giriş metninden türetildiğinde, bu fonksiyon bileşenlerinden yararlanarak saati oluşturmak için kullanılabilir.

Bu örneklerde `h:mm:ss` saat biçimi kullanılmıştır. Saat biçimi, veri yükleme komut dosyanızın en üstündeki `SET TimeFormat` deyiminde belirtilir. Örneklerdeki biçimi gereksinimlerinize uyacak şekilde değiştirin.

Fonksiyon örnekleri

| Örnek | Sonuç |
| --- | --- |
| `maketime(22)` | 22:00:00 döndürür. |
| `maketime(22, 17)` | 22:17:00 döndürür. |
| `maketime(22,17,52 )` | 22:17:52 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 – maketime()

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

#### Komut dosyası ve sonuçlar

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* İşlemleri içeren ve `Transactions` adlı tabloya yüklenen bir veri kümesi.

* Üç alanda sağlanan işlem saatleri: `hours`, `minutes` ve `seconds`.

* `TimeFormat` sistem değişkeninin biçiminde saati döndüren `transaction_time` alanını oluşturma.

Komut dosyası

```
SET TimeFormat='h:mm:ss TT';

Transactions:
    Load
        *,
        maketime(transaction_hour, transaction_minute, transaction_second) as transaction_time
        ; 
Load * Inline [
transaction_id, transaction_hour, transaction_minute, transaction_second, transaction_amount, transaction_quantity, customer_id
3750, 18, 43, 30, 12423.56, 23, 2038593
3751, 6, 32, 07, 5356.31, 6, 203521
3752, 12, 09, 16, 15.75, 1, 5646471
3753, 21, 43, 41, 7, 3036491
3754, 17, 55, 22, 21484.21, 1356, 049681
3756, 2, 52, 22, -59.18, 2, 2038593
3757, 9, 25, 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_hour`

* `transaction_minute`

* `transaction_second`

* `transaction_time`

Sonuçlar tablosu

| transaction\_hour | transaction\_minute | transaction\_second | transaction\_time |
| --- | --- | --- | --- |
| 2 | 52 | 22 | 2:52:22 AM |
| 6 | 32 | 07 | 6:32:07 AM |
| 9 | 25 | 23 | 9:25:23 AM |
| 12 | 09 | 16 | 12:09:16 PM |
| 17 | 55 | 22 | 5:55:22 PM |
| 18 | 43 | 30 | 6:43:30 PM |
| 21 | 43 | 41 | 9:43:41 PM |

`transaction_time` alanı önceki yükleme deyiminde `maketime()` fonksiyonu kullanılarak ve fonksiyon bağımsız değişkenleri olarak hour, minute ve second alanları geçirilerek oluşturulur.

Ardından fonksiyon bu değerleri birleştirip bir saat alanına dönüştürür ve sonuçları `TimeFormat` bağımsız değişkeninin saat biçiminde döndürür.

## Örnek 2 – time() fonksiyonu

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

#### Komut dosyası ve sonuçlar

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

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

* `TimeFormat` sistem değişkeninde değişiklik yapmadan sonuçları 24 saatlik zaman biçiminde göstermemizi sağlayacak olan `transaction_time` alanını oluşturma.

Komut dosyası

```
SET TimeFormat='h:mm:ss TT';

Transactions:
    Load
        *,
        time(maketime(transaction_hour, transaction_minute, transaction_second),'h:mm:ss') as transaction_time
        ; 
Load * Inline [
transaction_id, transaction_hour, transaction_minute, transaction_second, transaction_amount, transaction_quantity, customer_id
3750, 18, 43, 30, 12423.56, 23, 2038593
3751, 6, 32, 07, 5356.31, 6, 203521
3752, 12, 09, 16, 15.75, 1, 5646471
3753, 21, 43, 41, 7, 3036491
3754, 17, 55, 22, 21484.21, 1356, 049681
3756, 2, 52, 22, -59.18, 2, 2038593
3757, 9, 25, 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_hour`

* `transaction_minute`

* `transaction_second`

* `transaction_time`

Sonuçlar tablosu

| transaction\_hour | transaction\_minute | transaction\_second | transaction\_time |
| --- | --- | --- | --- |
| 2 | 52 | 22 | 2:52:22 |
| 6 | 32 | 07 | 6:32:07 |
| 9 | 25 | 23 | 9:25:23 |
| 12 | 09 | 16 | 12:09:16 |
| 17 | 55 | 22 | 17:55:22 |
| 18 | 43 | 30 | 18:43:30 |
| 21 | 43 | 41 | 21:43:41 |

Bu örnekte `maketime()` fonksiyonu `time()` fonksiyonunun içine yerleştirilmiştir. `time()` fonksiyonunun ikinci bağımsız değişkeni, `maketime()` fonksiyonunun sonuçlarını gereken `h:mm:ss` biçimine ayarlar.

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

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

#### Komut dosyası ve grafik ifadesi

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* İşlemleri içeren ve `Transactions` adlı tabloya yüklenen bir veri kümesi.

* İki alanda sağlanan işlem saatleri: `hours` ve `minutes`.

* `TimeFormat` sistem değişkeninin biçiminde saati döndüren `transaction_time` alanını oluşturma.

Saati `h:mm:ss TT` biçiminde döndüren bir `transaction_time` grafik nesnesi hesaplaması oluşturun.

Yükleme kodu

```
SET TimeFormat='h:mm:ss TT';

Transactions:
Load * Inline [
transaction_id, transaction_hour, transaction_minute, transaction_amount, transaction_quantity, customer_id
3750, 18, 43, 12423.56, 23, 2038593
3751, 6, 32, 5356.31, 6, 203521
3752, 12, 09, 15.75, 1, 5646471
3753, 21, 43, 7, 3036491
3754, 17, 55, 21484.21, 1356, 049681
3756, 2, 52, -59.18, 2, 2038593
3757, 9, 25, 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_hour`

* `transaction_minute`

`transaction_time` değerini hesaplamak için şu hesaplamayı oluşturun:

`=maketime(transaction_hour,transaction_minute)`

Sonuçlar tablosu

| transaction\_hour | transaction\_minute | =maketime(transaction\_hour, transaction\_minute) |
| --- | --- | --- |
| 2 | 52 | 2:52:00 AM |
| 6 | 32 | 6:32:00 AM |
| 9 | 25 | 9:25:00 AM |
| 12 | 09 | 12:09:00 PM |
| 17 | 55 | 5:55:00 PM |
| 18 | 43 | 6:43:00 PM |
| 21 | 43 | 9:43:00 PM |

`transaction_time` hesaplaması, grafik nesnesinde `maketime()` fonksiyonu kullanılarak ve fonksiyon bağımsız değişkenleri olarak hour ve minute alanları geçirilerek oluşturulur.

Ardından fonksiyon bu değerleri birleştirir ve saniye değerinin 00 olduğu varsayılır. Bu değerler bir saat alanına dönüştürülür ve sonuçlar `TimeFormat` 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/maketime.htm)

#### Komut dosyası ve grafik ifadesi

Genel bakış

Ocak 2022 için artışlı olarak sekiz saatlik bölümlere ayrılmış bir takvim veri kümesi oluşturun.

Komut dosyası

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';

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

Left join(tmpCalendar)
load
	maketime((recno()-1)*8,00,00) as time
autogenerate 3;

Calendar:
load
	timestamp(date + time) as timestamp
resident tmpCalendar;

drop table tmpCalendar;
```

Sonuçlar

Sonuçlar tablosu

| zaman damgası |
| --- |
| 1/1/2022 12:00:00 AM |
| 1/1/2022 8:00:00 AM |
| 1/1/2022 4:00:00 PM |
| 1/2/2022 12:00:00 AM |
| 1/2/2022 8:00:00 AM |
| 1/2/2022 4:00:00 PM |
| 1/3/2022 12:00:00 AM |
| 1/3/2022 8:00:00 AM |
| 1/3/2022 4:00:00 PM |
| 1/4/2022 12:00:00 AM |
| 1/4/2022 8:00:00 AM |
| 1/4/2022 4:00:00 PM |
| 1/5/2022 12:00:00 AM |
| 1/5/2022 8:00:00 AM |
| 1/5/2022 4:00:00 PM |
| 1/6/2022 12:00:00 AM |
| 1/6/2022 8:00:00 AM |
| 1/6/2022 4:00:00 PM |
| 1/7/2022 12:00:00 AM |
| 1/7/2022 8:00:00 AM |
| 1/7/2022 4:00:00 PM |
| 1/8/2022 12:00:00 AM |
| 1/8/2022 8:00:00 AM |
| 1/8/2022 4:00:00 PM |
| 1/9/2022 12:00:00 AM |
| + 68 satır daha |

İlk autogenerate fonksiyonu tmpCalendar adlı tabloda Ocak ayındaki tüm tarihleri içeren bir takvim oluşturur.

Üç kaydı içeren ikinci bir tablo oluşturulur. Her kayıt için recno() – 1 alınır (0, 1, 2 değerleri) ve sonuç 8 ile çarpılır. Bu da 0, 8 16 değerlerini oluşturur. Bu değerler maketime() fonksiyonunda hour parametresi olarak kullanılır ve dakika ile saniye değerleri 0'dır. Sonuç olarak tablo üç saat alanı içerir: 00:00:00, 08:00:00 ve 16:00:00.

Bu tablo, tmpCalendar tablosuyla birleştirilir. İki tablo arasında birleştirme için eşleşen alanlar olmadığından, her tarih satırına saat satırları eklenir. Sonuç olarak şimdi her tarih satırı, saat değerlerinin her birini içerecek şekilde üç kez tekrarlanır.

Son olarak, tmpCalendar tablosunun yerleşik yüklemesinden Takvim tablosu oluşturulur. timestamp() fonksiyonunda, tarih ve saat alanları birleştirilerek zaman damgası alanı oluşturulur.

Sonra tmpCalendar tablosu bırakılır.