|
Sql Server 2008 de Cast & Convert

Yazar:
İbrahim Ersoy
Kategori:
SQL Server
Eklenme Tarihi:
06.11.2008 21:54:52
Bu yazımda Sql Server 2008 de bulunan bu iki ifadeyi anlatıyor olacağım...
Cast ve Convert ifadeleri veri tiplerini ve stillerini değiştirmemize olanak sağlarlar. Aslına bakarsanız ikisinin de görevi aynıdır.Ancak,CONVERT deyimi ilgili değerin stilini de değiştirir...
örnek vermem gerekirse;
"4000 YTL" değerini para birimi olarak yazmak istersek 4.000 YTL dememiz gerekir. Yada 2008 yılını çift haneliye çevirirken "08" yazarız. işte bu gibi durumlarda CONVERT deyimini kullanırız...
Bir örnek yapalım isterseniz. Daha iyi anlayacağınıza eminim:
Declare @zaman as DateTime; set @zaman='01/04/1985'; Select @zaman;
kod cümleciğini çalıştırdığımız anda ekrana @zaman parametremize verdiğimiz 1 Nisan 1985 tarihini DateTime biçiminde yazacak ve böyle bir sonuç ortaya çıkacaktır:
1985-01-04 00:00:00.000
Bu bizim istediğimiz bir sonuç değildir.Dolayısıyla bunu uygun bir formatlama biçimine dönüştürmemiz gerekir.Gelin bunu Cast ile nasıl yaparız öğrenelim...
İlgili Select cümleciğimizi bu şekilde yazarsak eğer:
Select CAST(@zaman as nvarchar(50));
Aşağıdaki gibi bir sonuç elde edeceğimize hiç şüphe yoktur:
Jan 4 1985 12:00AM
İşte bu bizim tamda istediğimiz bir biçimdir.Bu ifade yapısı,yani "Cast" deyimi Sql Server 2005'de de çalışmaktadır...
Ve bunun tam tersini yapmak istersek de;
Select CAST('Jan 4 1985 12:00AM' as DateTime);
Kod Cümleciğini çalıştırmamız yeterli olacaktır...
Şimdi gelelim Convert Deyimi ile bunları nasıl yapacağımıza...
Convert ifadesinin kullanım şekli:
Convert(veritipi,değer,stil);
şeklindedir...
Örnek yapalım hemen...
Select Convert(DATETIME,'Jan 4 1985 12:00AM');
ifadesi aşağıdaki sonucu döndürecektir:
1985-01-04 00:00:00.000
yani yukarıda yaptığımız CAST ifadesiyle aynı görevi yapıyor...
Convert ifadesinde Stil özelliğini hiç kullanmadık.Gelin onu da birkaç örnekte yapalım.
Stil değeri çıktı ifadesini adı üstünde stil vermeye zorlar.Stil değeri nümerik bir alandır ve 0 dan 7 ye kadar olan tüm sayı değerlerini kabul eder(0 değeri aslında buna dahil değildir.0 değerini etkisiz eleman olarak algılayabilirsiniz...)
Örnek vermem gerekirse;
Declare @zaman as DateTime; set @zaman='01/04/1985'; Select Convert(nvarchar(50),@zaman,0);
değeri bize,
Jan 4 1985 12:00AM
çıktısını verecektir.
Tüm parametrelerin çıktısı aşağıda verilmiştir...
Select Convert(nvarchar(50),@zaman,1); ----->>>> 01/04/85 Select Convert(nvarchar(50),@zaman,2); ----->>>> 85.01.04 Select Convert(nvarchar(50),@zaman,3); ----->>>> 04/01/85 Select Convert(nvarchar(50),@zaman,4); ----->>>> 04.01.85 Select Convert(nvarchar(50),@zaman,5); ----->>>> 04-01-85 Select Convert(nvarchar(50),@zaman,6); ----->>>> 04 Jan 85 Select Convert(nvarchar(50),@zaman,7); ----->>>> Jan 04, 85
gibi çıktılar alacaksınızdır...
Umarım bu makalem açıklayıcı olabilmiştir. İyi Çalışmalar...
İbrahim Ersoy
1985 Kütahya doğumlu.2005 yılında Bilgisayar Programcılığı bölümünden mezun oldu.Anadolu Üniversitesi İşletme Fakültesinde Lisans eğitimine devam ediyor.
8 yıldan beri bilgisayarlar ile ilgileniyor.Programlama ya ilk 2001 yılında visual basic 6 ile başladı 2 yıl sonra .net in çıkmasıyla visual basic.net e merak sardı.Daha sonra veritabanı programcılığı alanında kendini geliştirdi.Çeşitli küçük çaplı kurumsal uygulamalar yazdı.Vb.net in kendisine yetmeyeceğini düşünerekten 2005 yılında C# a geçiş yaptı.
2006 yılında Directx Sdk sını araştırması belki de hayatının dönüm noktası oldu.3D oyun programcılığına bu şekilde merak sardı.Şu anda halen daha Managed DirectX ve XNA ile ilgili araştırmalarına devam ediyor.
Bilgi sahibi olduğu diller ve programlar: DirectX,XNA,Vb.NET,Flash,ASP.NET,HTML,C#,Flex
|