Bu
makalede, verileri bir türden diğerine dönüştürmek
istediğimizde önemli bir farklılık olup olmadığını anlamak için CAST ve CONVERT
işlevlerini inceleyeceğiz.
CAST ve CONVERT
fonksiyonları çoğu durumda birbirinin yerine kullanılabilir olduğundan ,
birinin diğerinden daha iyi olup olmadığını merak ediyor olabilirsiniz.
CAST ve CONVERT Arasındaki Benzerlikler
Birçok yönden CAST ve CONVERT benzerdir. Her ikisi de verileri bir
türden diğerine dönüştürmek için kullanılır. Sözdizimlerinin farklı olduğunu
düşünürsek, her iki işlev de değerleri bir formasyondan diğerine dönüştürür.
İkisi arasında
performans farkı yoktur
CAST ve CONVERT Arasındaki Farklar
ANSI-SQL
belirtiminin bir parçasıdır; Oysa CONVERT değildir.
CONVERT
en önemli farkı, biçimlendirme için kullanılan isteğe
bağlı stil parametresini kabul etmesiyle yatmaktadır.
Aşağıdaki
örnekte olduğu gibi, bir DateTime veri türünü Varchar'a
dönüştürürken, YYYY/AA/GG veya AA/GG/YYYY gibi sonuç tarihlerini
belirtebilirsiniz.
SELECT CONVERT(VARCHAR,GETDATE(),101) as MMDDYYYY,
CONVERT(VARCHAR,GETDATE(),111) as YYYYMMDD
Aşağıdaki
örnekte olduğu gibi, bir DateTime veri türünü Varchar'a
dönüştürürken, YYYY/AA/GG veya AA/GG/YYYY gibi sonuç tarihlerini
belirtebilirsiniz.
CAST veya CONVERT Hangisini Kullanmalıyım?
Dönüşüm esnasında
özel bir formatlama ihtiyacı olmadıkça CAST kullanmaya devam etmeliyiz.
CAST Kullanımının
performans açısından bir eksikliği yoktur.
CAST ANSI-SQL uyumlu
olduğu için diğer veritabanlarında da kullanılmaya uygundur.