CONVERT ve CAST Fonksiyonları
CONVERT ve CAST birbiriyle benzer işleve sahip fonksiyonlardır. İkiside tür dönüşümü için kullanılır. CONVERT SQL’e özgü bir fonksiyonken CAST ise ANSI-SQL standardıdır.
CONVERY SQL’e özgü bir fonksiyon olduğu için sql’e ait datetime dönüşümlerini formatlayarak yapabilirsiniz. İki fonksiyonun da kendine özgü syntax’ları vardır.
Aşağıdaki örneklerde bu fonksiyonların nasıl kullanıldığını ve convert ile datetime tipini varchar’a dönüştürürken nasıl formatlayabildiğimizi görebilirsiniz.
Aşağıdaki örnekte varchar tipine sahip bir değer int tipine dönüştürüldükten sonra ortaya çıkan int tipindeki değer aritmetik işleme giriyor.
SELECT CAST ('10' as int) * 20, CONVERT (int, '10') * 20
Aşağıdaki örnekte int tipine sahip bir değer varchar tipine dönüştürüldükten sonra ortaya çıkan varchar tipindeki değer karakter birleştirme işlemine giriyor.
SELECT CAST (10 as varchar(2)) + ' aslında bir sayıdır', CONVERT (varchar(2), 10) + ' aslında bir sayıdır'
Aşağıda da CONVERT fonksiyonunu kullanarak datetime tipindeki bir değeri varchar’a dönüştürürken nasıl formatlayacağımızı görebilirsiniz.
SELECT CONVERT(VARCHAR,GETDATE(),101) as MMDDYYYY, CONVERT(VARCHAR,GETDATE(),111) as YYYYMMDD
Yukardaki örnekte gördüğünüz 101 ve 111 değerleri formatlama şeklini gösteriyor. Formatlama şekillerini içeren tabloyu aşağıda bulabilirsiniz.
101 |
mm/dd/yyyy |
102 |
yy.mm.dd |
103 |
dd/mm/yyyy |
104 |
dd.mm.yy |
105 |
dd-mm-yy |
106(1) |
dd mon yy |
107(1) |
Mon dd, yy |
108 |
hh:mi:ss |
9 or 109 (1,2) |
mon dd yyyy hh:mi:ss:mmmAM (or PM) |
110 |
mm-dd-yy |
111 |
yy/mm/dd |
112 |
yymmdd yyyymmdd |
13 or 113 (1,2) |
dd mon yyyy hh:mi:ss:mmm(24h) |
114 |
hh:mi:ss:mmm(24h) |
20 or 120 (2) |
yyyy-mm-dd hh:mi:ss(24h) |
21 or 121 (2) |
yyyy-mm-dd hh:mi:ss.mmm(24h) |
126 (4) |
yyyy-mm-ddThh:mi:ss.mmm (no spaces) |
127(6, 7) |
yyyy-mm-ddThh:mi:ss.mmmZ (no spaces) |
130 (1,2) |
dd mon yyyy hh:mi:ss:mmmAM |
131 (2) |
dd/mm/yy hh:mi:ss:mmmAM |
Kaynak https://msdn.microsoft.com/en-us/library/ms187928(v=sql.100).aspx