T-SQL'de Tip Dönüştürme ve Matematik Fonksiyonları
Tip dönüştürme fonksiyonları gerek SQL’de gerek T-SQL’de yoğun olarak kullanılır. Herhangi bir veri tipinden başka bir veri tipine dönüştürme işlemidir.
• COVERT • CAST • PARSE • TRY_CAST • TRY_CONVERT • TRY_PARSE
Tip Dönüştürme
CAST/CONVERT Fonksiyonları
Tip dönüştürme fonksiyonlarından en çok kullanılan fonksiyonlardır. CONVERT, T-SQL’in kendi fonksiyonu olduğu için burada daha çok kullanılır. Sadece DATE tipi değil bir çok veri tipi dönüşümü yapılabilir.
SELECT
CAST (‘2022-12-25’ AS DATE), // 2022-12-25
CAST (‘20220608’ AS DATE), // 2022-06-08
CAST (‘20220608’ AS INT) // 20220608
NOT: CAST ve CONVERT’te ifade YYYY-GG-AA şeklindeyse INT tipine çevrilemez fakat YYYYGGAA şeklinde ise INT tipine çevrilebilir.
SELECT
CONVERT(BINARY,’MERHABA’), // 0x4D455248414241000…
CONVERT(VARCHAR(100),0x4D455248414241000…), // MERHABA
CONVERT(INT,72.56) // 72

* CONVERT fonkisyonunun farklı parametreleri:
SELECT
CONVERT (VARCHAR,GETDATE()) , // Eyl 17 2024 9:32PM
CONVERT (VARCHAR,GETDATE(),103) , // 17/09/2024
CONVERT (VARCHAR,GETDATE(),100) , // Eyl 17 2024 9:32PM
CONVERT (VARCHAR,GETDATE(),101) , // 09/17/2024
CONVERT (VARCHAR,GETDATE(),102) , // 2024.09.17
CONVERT (VARCHAR,GETDATE(),104) , // 17.09.2024
CONVERT (VARCHAR,GETDATE(),105) , // 17-09-2024
CONVERT (VARCHAR,GETDATE(),106) , // 17 Eyl 2024
CONVERT (VARCHAR,GETDATE(),107) , // Eyl 17, 2024
CONVERT (VARCHAR,GETDATE(),108) // 21:32:54

CAST/CONVERT Fonksiyonları
Try kelimesei hata yakalama bloku olan try-catch‘den gelmektedir. Hata anında NULL döndürürler. Veri önişleme, veri kopyalama ve veri taşıma gibi yerlerde kolaylık sağlarlar. Daha çok DATE ve DATETIME da kullanılması diğer veri tiplerinde kullanılmayacağı anlamına gelmemelidir.
SELECT CONVERT(DATE,’2024-17-08′) // 12’den büyük ay olamayacağı için hata mesajı alırız.
SELECT TRY_CAST(‘2024-17-08’ AS DATE) // NULL
SELECT TRY_CONVERT(DATE, ‘2022-17-08’) // NULL

Matematik Fonksiyonları
Veritabanlarında sorgulama yaparken bir çok noktada hesaplama işlemleri gerçekleştiririz. Ve burada birçok matematiksel fonksiyon kullanırız.
• ABS • ACOS • ASIN • ATAN • ATN2 • CEILING • COS • DEGRESS • EXP • FLOOR • LOG • LOG10 • PI • POWER • RADIANS •RAND • ROUND • SIGN • SIN • SQRT • SQUARE • TAN
ABS ve SIGN Fonksiyonları
ABS (Absolute) mutlak değer fonksiyonu, SIGN ise işaret fonksiyonudur. ABS o sayının mutlak değerini getirirken SIGN o sayının işaretini yani pozitif(1) mi negatif(-1) mi olduğu bilgisini getirir . Parametre olarak 1 tane değer alabilirler. Bu değer integer ya da float olabilir.
SELECT
ABS(-25), // 25
ABS(25.56), // 25.56
SIGN(25), // 1
SIGN(-25), // -1
SIGN(25.56), // 1.00
SIGN(-25.56) // -1.00
SIGN(0) // 0

ROUND/FLOOR/CEILING Fonksiyonları
Benzer işler yaparlar. Ondalık değerleri virgülden kurtarırlar.
ROUND -> Virgülden sonra belirlediğimiz karakter sayısı kadarını alır.
FLOOR -> Aşağa yuvarlar ve integerbir değer elde etmemize yarar.
CEILING -> Yukarı bir değere yuvarlar ve ınteger bir değer elde etmemize yarar.
SELECT
ROUND (156.4878,2), // 156.4900
FLOOR(156.4678), // 156
CEILING (156.4678) // 157
RAND Fonksiyonları
0 ile 1 arasında bir rastgele float değer üretmede kullanırız. Sentetik veri oluşturmada işe yarar.
SELECT
RAND(), // 0-1 arası float
RAND()*100 // 0-100 arası float
SELECT CONVERT(INT,RAND()*100) // 0 – 100 arası int
SELECT 50+CONVERT(INT,RAND()*50) // 0 ile 100 arası int
