SQL Server’da Datepart Sayısını Gün Adına Dönüştürme

Eğer SQL Server ile çalıştıysanız, muhtemelen bir tarihten belirli parçaları çıkarma ihtiyacıyla karşılaştınız demektir; bu, daha iyi anlayış ve kullanılabilirlik sağlar. Yaygın bir gereksinim, datepart fonksiyonundan elde edilen bir günün sayısal temsilini (örneğin “Pazartesi” veya “Salı”) ilgili adı ile dönüşüme sokmaktır. Bu blog yazısında, bu dönüşümü SQL Server’da hızlı bir şekilde nasıl gerçekleştirebileceğimizi keşfedeceğiz.

Problemi Anlamak

SQL Server’daki datepart fonksiyonunu kullandığınızda, bir tarih ile haftanın gününü almak, 1 ile 7 arasında bir sayı verir; burada:

  • 1 = Pazar
  • 2 = Pazartesi
  • 3 = Salı
  • 4 = Çarşamba
  • 5 = Perşembe
  • 6 = Cuma
  • 7 = Cumartesi

Örneğin, aşağıdaki sorguyu çalıştırmak haftanın gününü bir sayı olarak döndürür:

SELECT DATEPART(dw, GETDATE());

Bu sayısal değer yararlı olabilir, ancak çok kullanıcı dostu değildir; amacımız bu sayısal çıktıyı daha okunabilir bir formata, özellikle gün adının kendisine dönüştürmektir.

Çözüm: datename Kullanarak

Bir gün adını elde etmek için sayısal bir değer yerine SQL Server’daki DATENAME fonksiyonunu kullanabilirsiniz. DATENAME fonksiyonu, belirli bir tarihin belirli bir tarih kısmının adını döndürmenizi sağlar. İşte bunu nasıl yapabileceğiniz:

Adım 1: DATENAME Fonksiyonunu Kullanma

Aşağıdaki SQL sorgusunda datepart fonksiyonu yerine datename fonksiyonunu basitçe değiştirebilirsiniz:

SELECT DATENAME(weekday, GETDATE());

Sorgunun Açıklaması:

  • DATENAME: Bu fonksiyon iki parametre alır; birincisi almak istediğiniz tarih parçası (bu durumda weekday), ikincisi ise bilgisini almak istediğiniz tarihtir (bu durumda GETDATE() tarafından döndürülen mevcut tarih).
  • GETDATE(): Bu fonksiyon mevcut veritabanı sistem zaman damgasını döndürür.

Adım 2: Sorguyu Çalıştırma

Yukarıdaki SELECT ifadesini çalıştırdığınızda, örneğin “Pazar”, “Pazartesi” gibi mevcut günün adını döndürecektir, bu da durumu anında anlamayı çok daha kolay hale getirir.

Sonuç

SQL Server’daki DATENAME fonksiyonunu kullanarak, sayısal bir gün temsilini daha anlamlı bir gün adına zahmetsizce dönüştürebilirsiniz. Bu basit tek satırlık ifade zaman kazandırabilir ve veri çıktınızı, özellikle raporlar veya kullanıcı arayüzlerinde, önemli ölçüde daha anlaşılır hale getirebilir.

Bir sonraki sefer SQL Server’da haftanın gününü almak istediğinizde, bir sayıyı ad ile dönüştürmenin sadece hızlı bir sorgu mesafesinde olduğunu unutmayın!

Farklı tarihlerle denemeler yapmak için GETDATE()‘i kendi tarih değeriniziyle değiştirerek bu fonksiyonların nasıl çalıştığını görebilirsiniz!