>SQL Server Convert() & Cast() kullanı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…

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s