Son Haberler
Anasayfa / Yazılım / SQL / DATENAME ve DATEPART Fonksiyonları

DATENAME ve DATEPART Fonksiyonları

DATENAME ve DATEPART fonksiyonları belli bir tarih dilimindeki tarihlerin istenilen kısımlarının geriye döndürülmesini sağlayan fonksiyonlardır. İkisinin farkına gelince, DATENAME fonksiyonu belli bir tarih içindeki aya ait ismi, güne ait ismi dönerken, DATEPART fonksiyonu ile ayın veya günün sayısal yani nümerik değerini elde ederiz. Kullanım olarak syntax aşağıdaki gibidir :

DATENAME(tarihverisininhangikısmı,tarihverisi)
DATEPART(tarihverisininhangikısmı,tarihverisi)

Şimdi örneklendirelim : (AdventureWorks veritabanı üzerinde sorgumu yazıyorum)

SELECT OrderDate, DATEPART(year,OrderDate) AS "Sipariş Yılı",
DATEPART(month,OrderDate) AS "Sipariş Yılın Kaçıncı Ayı",
DATEPART(day,OrderDate) AS "Sipariş Ayın Kaçıncı Günü",
DATEPART(weekday,OrderDate) AS "Sipariş Haftanın Kaçıncı Günü"
FROM Sales.SalesOrderHeader
WHERE SalesOrderID in (43659,43714,43789,60656,60621)

Sorgum bu şekilde, sorgumda Sales.SalesOrderHeader tablosunda SalesOrderID alanı 43659,43714,43789,60656,60621 olan satırların OrderDate kolonunu ve bu kolonun hangi yıl, yılın kaçıncı ayı, sipariş ayın kaçıncı günü, sipariş haftanın kaçıncı günü sırası ile gösterdim. Burada görüleceği üzere Datepart olarak year, month, day ve weekday kullandım. Sırası ile yıl, ay, ayın kaçıncı günü ve haftanın kaçıncı günü verilerini bu şekilde listeledim.

240101

Şimdi aynı tarzda sorgu oluşturcam ve bu sefer ay ve haftagünü bilgisinin ismini alacağım.

SELECT OrderDate, DATENAME(year,OrderDate) AS "Sipariş Yılı",
DATENAME(month,OrderDate) AS "Sipariş Yılın Hangi Ayı",
DATENAME(day,OrderDate) AS "Sipariş Ayın Kaçıncı Günü",
DATENAME(weekday,OrderDate) AS "Sipariş Haftanın Hangi Günü"
FROM Sales.SalesOrderHeader
WHERE SalesOrderID in (43659,43714,43789,60656,60621)

Sorgumda Sales.SalesOrderHeader tablosunda SalesOrderID alanı 43659,43714,43789,60656,60621 olan satırların OrderDate kolonunu ve bu kolonun hangi yıl, yılın hangi ayı, sipariş ayın kaçıncı günü, sipariş haftanın hangi günü sırası ile gösterdim. Burada görüleceği üzere Datepart olarak year, month, day ve weekday kullandım. Sırası ile yıl, hangi ay, ayın kaçıncı günü ve haftanın hangi günü verilerini bu şekilde listeledim.

240102

Görüldüğü üzere DATENAME kullandım. Burada Yıl ve ay datepart yani year ve month olarak datepart belirttiğimizde geri dönen değer yine sayısal. Çünkü bu alanlar sadece nümerik olarak ifade edilebilir. Bu son sorgumuzda da öyle oldu. month deyince ve weekday deyince tarihin isim olarak verisi geldi ancak year ve day dediğimiz de tarihin yine nümerik verisi döndü.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir