Charindex() CHARINDEX fonksiyonu 2 parametre almaktadır. 1.parametredeki değerin 2.parametre olarak verilmiş değerde olup olmadığını belirtir. Varsa karakter numarasını yoksa 0 değerini döndürür. SELECT CHARINDEX ('U','BUGÜN HAVA ÇOK GÜZEL') -- 2 SELECT CHARINDEX ('A','BUGÜN HAVA ÇOK GÜZEL') -- 8 SELECT CHARINDEX ('HAVA','BUGÜN HAVA ÇOK GÜZEL') --7 SELECT CHARINDEX ('ABC','BUGÜN HAVA ÇOK GÜZEL') --0
Charindex() (Devam) CHARINDEX fonksiyonu seçmeli olarak 3.parametre de alabilir. Bu parametre aramanın yapılacağı başlangıç konumunu belirtir. Örneğin üstteki 2.SELECT cümlesi bulduğu ilk A nın konumunu döndürdü. 9.karakterden itibaren arama yapmasını istediğimizde 2. A yı bulmuş olacaktır. SELECT CHARINDEX ('A','BUGÜN HAVA ÇOK GÜZEL',9) --10
Left()ve Right() LEFT ve RIGHT fonksiyonları 2 parametre alıp bir metnin sağından veya solundan ne kadar keseceğini belirtir. Kaç karakterin alınacağı 2.parametre olarak verilir. SELECT LEFT('BUGÜN HAVA ÇOK GÜZEL',5)--BUGÜN SELECT LEFT('BUGÜN HAVA ÇOK GÜZEL',100)--BUGÜN HAVA ÇOK GÜZEL SELECT RIGHT('BUGÜN HAVA ÇOK GÜZEL',5)--GÜZEL SELECT RIGHT('BUGÜN HAVA ÇOK GÜZEL',500)-- BUGÜN HAVA ÇOK GÜZEL
Len() LEN fonksiyonu parametre olarak aldığı metnin uzunluğunu belirtir. SELECT LEN('BUGÜN HAVA ÇOK GÜZEL')--20 SELECT LEN('BUGÜN HAVA ÇOK GÜZEL ')--20 SELECT LEN('BUGÜN HAVA ÇOK GÜZEL')--20
Replace() REPLACE fonksiyonu 3 parametre alıp bir metnin içindeki bir karakteri başka bir karakterle değiştirmeyi sağlar. İlk parametre değişiklik yapılacak metni, ikinci parametre metin içinde aranacak veriyi, üçüncü parametre de bu verinin hangi veriyle değiştirileceği belirtilir. SELECT REPLACE('BUGÜN HAVA ÇOK GÜZEL','GÜZEL','KÖTÜ') --BUGÜN HAVA ÇOK KÖTÜ SELECT REPLACE('BUGÜN HAVA ÇOK GÜZEL','KÖTÜ','GÜZEL') --BUGÜN HAVA ÇOK GÜZEL
Substring() SUBSTRING fonksiyonu en çok kullanılan fonksiyonlardan biri olup bir metnin belirlenmiş başlangıç noktasından itibaren parametre olarak verilmiş uzunluk kadar karakteri döndürür. SELECT SUBSTRING('BUGÜN HAVA ÇOK GÜZEL',7,4)--HAVA
Lower ve Upper() LOWER ve UPPER fonksiyonları metni küçük veya büyük harfe çevirir. SELECT LOWER('BUGÜN HAVA ÇOK GÜZEL')-- bugün hava çok güzel SELECT UPPER('Bugün HAVA çok GÜZEL')--BUGÜN HAVA ÇOK GÜZEL
Ltrim() ve Rtrim() LTRIM ve RTRIM fonksiyonları SQL Server üzerinde metinsel verilerle uğraşan kişilerin en çok kullandığı fonksiyonlardır diye biliriz. LTRIM, metnin sol tarafındaki boşlukları, RTRIM ise sağ tarafındaki boşlukları siler.
Replicate() REPLICATE fonksiyonu string ve int olmak üzere 2 parametre alır. Girilen sayı kadar ilk parametredeki değeri yazdırır. SELECT REPLICATE('A',5)--AAAAA SELECT 'A'+REPLICATE(' ',5)+'X'--A X SELECT REPLICATE('0',10)
Space() SPACE fonksiyonu parametre aldığı sayı kadar boşluk karakteri döndürür. SELECT 'A'+SPACE(5)+'X' A SELECT LEN('A'+SPACE(5)+'X')--7 X
Reverse() Stringi ters çevirir. SELECT REVERSE('RAMBO') Sonuç: OBMAR
Tarih ve Zaman Fonksiyonları Bu fonksiyonlar tarih (date) ve zaman (time) üzerinde işlemler yapmayı sağlar. Tarih ve zaman fonksiyonları şunlardır: GETDATE() DAY() MONTH() YEAR() DATEADD() DATEDIFF() DATEPART() DATENAME()
Getdate() Şu andaki tarihi ve saati gösterir. Örnek: select GETDATE() select GETDATE() as [NOW] SELECT CURRENT_TIMESTAMP kodları da aynı işlevi görür.
Day() Bir tarih bilgisinin gün kısmını verir. Kullanım Biçimi: DAY(tarih) SELECT DAY(GETDATE()) as [Today] SELECT DAY( s1999/12/26') AS 'Gün'
Month() Bir tarih bilgisinin ay kısmını verir. Kullanım Biçimi: MONTH(tarih) SELECT MONTH(GETDATE()) as [Month] SELECT MONTH( 1999/03/12') AS 'Ay'
Year() Bir tarih bilgisinin yıl kısmını verir. Kullanım Biçimi: YEAR(tarih) SELECT YEAR(GETDATE()) as [Year] SELECT YEAR( 1999/12/03') AS Yıl'
Dateadd() Belli bir tarihin üzerine değer eklenerek yeni bir tarih değeri üretir. Kullanım biçimi: DATEADD ( tarihkısmı, sayı, tarih) Argümanları: Tarih kısmı (aşağıdaki değişkenlerden birini alır) Tarih Parçası Year Quarter Month Dayofyear Day Week Hour Minute Second Millisecond yy, yyyy qq, q mm, m dy, y dd, d wk, ww hh mi, n ss, s ms Kısaltması sayı Tarih kısmını artırmak için kullanılan değer. tarih Tarih değerini döndüren tarih bilgisi.
Örnek SELECT DATEADD(dd, 90, '02.10.2007') --90 gün ekler select DATEADD(year,1,getdate()) as [Bir Yıl Sonrası] Son on gün içinde yapılan siparişler: SELECT ord_num, ord_date FROM sales WHERE (ord_date >= DATEADD(day, -10, GETDATE()))
Dateiff() İki tarih arasındaki gün sayısını verir. Kullanımı: DATEDIFF ( Tarih parçası, başlangıç tarihi, bitiş tarihi) Argümanları: Tarih parçası Tarih Parçası Kısaltması Year yy, yyyy Quarter qq, q Month mm, m Dayofyear dy, y Day dd, d Week wk, ww Hour hh Minute mi, n Second ss, s millisecond Ms
Örnek SELECT DATEDIFF(day, '04.04.1974', '02.10.2007') SELECT DATEDIFF(DAY,GETDATE(),dateadd(day,2,getdate())) --Son iki gün
Datepart() Belirtilen tarihin istenen parçasına karşılık olarak bir tamsayı döndürür. Kullanım Biçimi: DATEPART(tarihparçası, tarih) Argümanları: Tarih parçası year quarter month dayofyear day week weekday hour minute second millisecond Tarih bölümü yy, yyyy qq, q mm, m dy, y dd, d wk, ww Dw Hh mi, n ss, s Ms Kısaltma
Örnek SELECT DATEPART(dd, '01.04.1974') SELECT DATEPART(mm, '01.04.1974') SELECT DATEPART(yy, '01.04.1974') select DATEPART(day,getdate()) as [Today] select DATEPART(MONTH,GETDATE()) as [Month] select DATEPART(YEAR,'12.12.1999') as [Year]
Datename() DATENAME: Başa yazılan parametrenin adını döndürür. SELECT DATENAME(dy, '12.25.2012') Sonuç : 360 SELECT DATENAME(mm, '12.25.2012') Sonuç : December SELECT DATENAME(dw, '12.25.2012') Tuesday SELECT DATENAME(yy, '12.25.2012') Sonuç : 2012