Tip Dönüşüm Fonksiyonları bir veri türündeki veriyi başka bir veri türüne çevirir. Bu süreçin nasıl işlediğini gelin hep beraber inceleyelim.
Tip Dönüşüm Fonksiyonları bir veri türündeki veriyi başka bir veri türüne çevirir. Bu süreçin nasıl işlediğini gelin hep beraber inceleyelim.
Bir veri türündeki veriyi başka bir veri türüne çevirir. Cast ve Convert benzer işlevlere sahiptir. Aralarındaki fark cast sadece çeviri yapar. Convert ise cast gibi çeviri yapabilir, ek olarak çevirme işleminde çevrilen veriyi biçimleyebilir. Örneğin money türündeki veriyi her üç hanede bir virgül koyarak biçimleyebilir.
Örnek:
declare @ifade nvarchar(30)
set @ifade='10.10.2008'
select cast(@ifade as smalldatetime) as tarih
nvarchar veri ütründeki veri smalldatetime a çevrildi
aynı örnek convert ile yapılırsa son satır
select convert(smalldatetime,@ifade) as tarih
şeklinde olur. Bu örnekte cast ve convert aynı işi yapar.
Convert fonksiyonunda çevirimde biçimleme yapılabilir.
smalldatetime veya datetime türündeki veriler karakter veri türüne (nchar, nvarchar, char, varchar, nchar veya nvarchar ) çevrilirken tarih biçimlenebilir..
Without century (yy) | With century (yyyy) | Standard | Input/Output |
- | 0 or 100 | Default | mon dd yyyy hh:miAM (or PM) |
1 | 101 | USA | mm/dd/yy |
2 | 102 | ANSI | yy.mm.dd |
4 | 104 | German | dd.mm.yy |
5 | 105 | Italian | dd-mm-yy |
6 | 106 | - | dd mon yy |
7 | 107 | - | Mon dd, yy |
8 | 108 | - | hh:mm:ss |
- | 9 or 119 | Default + milliseconds | mon dd yyyy hh:mi:ss:mmmAM (or PM) |
10 | 110 | USA | mm-dd-yy |
11 | 111 | JAPAN | yy/mm/dd |
12 | 112 | ISO | yymmdd |
- | 13 or 113 | Europe default + milliseconds | dd mon yyyy hh:mm:ss:mmm(24h) |
14 | 114 | - | hh:mi:ss:mmm(24h) |
- | 20 or 120 | ODBC standardı | yyyy-mm-dd hh:mi:ss(24h) |
- | 21 or 121 | ODBC standardı (milisaniyeli) | yyyy-mm-dd hh:mi:ss.mmm(24h) |
- | 126 | ISO8601 | yyyy-mm-dd Thh:mm:ss.mmm(no spaces) |
- | 130 | Hicri | dd mon yyyy hh:mi:ss:mmmAM |
- | 131 | Hicri | dd/mm/yy hh:mi:ss:mmmAM |
Tarih biçimlemeye örnek
declare @ifade smalldatetime
set @ifade='10.10.2008'
select convert(nvarchar(30),@ifade,100) as tarih
100 sayısını değiştirerek 101,102,...114 e kadar deneyerek farklarını öğrenin. Ayrıca 120,121,126,130 ve 131 i de deneyiniz.
-----------------------------------------------------------
select convert(nvarchar(30),@ifade,109) as tarih
burada 109 biçimlemesinde ayın ismi yazılır. Ayın ismi yazılırken Türkçe yazması için
set language Turkish
yazılarak dilin türkçeye çevrilmesi gereklidir.
float ve real veri türündeki verileri biçimleyerek karakter veri türüne çevirmek
Value | Output |
0 (default) | Tam kısım ve ondalık kısımdaki hanelerim tamamı 6 haneden fazla ise 6 haneye çevirir.tamamını alarak 6 tane hane alır |
1 | 8 haneden sonra bilimsel biçime dçnüşür (e+002 gibi) |
2 | 16 haneden sonra bilimsel biçime dçnüşür (e+002 gibi) |
float ve real veri türleri ondalık hane içeren sayısal veri türleridir. Noktadan sonra 38 e kadar hane sayısı alırlar.
declare @kayannoktali float
set @kayannoktali=152.38888
select convert(nvarchar(50),@kayannoktali,2)
2 rakamını 0,1 ile değiştirerek deneyiniz.
money ve smallmoney veri türündeki verileri biçimleyerek karakter veri türüne çevirmek
Value | Output |
0 (default) | Her üç hanede bir virgül kullanılmaz, sadece ondalık ifade nokta ile ayrılır. Örnek: 1000.98 1000 lira 98 kuruş . Kuruş ifadesi firmalarda önemlidir. Yoğun satış olan firmalarda. Kurul daima göz ardı edilirse. Kasa hesabı denkeştirilemez. Kuruş yok sayılırsa. Kasa daima fazla verir, stok ise kontrolsüz azalmış olur. |
1 | Her üç basamakta bir virgül koyar. Kuruş hanesi iki basamaklıdır ve nokta işe ayrılır Örnek: 3,510.92. |
2 | Her üç hanede bir virgül koymaz. Ondalık haneden 4 basamak alır.Örnek: 1000.9819 bin lira dokuzbinsekizyüzondokuz kuruş |
declare @paraparapara money
set @paraparapara=1500000000
select convert(nvarchar(50),@paraparapara,1)