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 durumdaGETDATE()
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!