Beyza'nın Blogu

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

m1
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

Scroll to Top