SQL Server’da Ay Numarasını Ay Adına Dönüştürmek
SQL Server’ı kullanırken, ay numaralarının ay adlarına dönüştürülmesi bazı durumlarda işinizi kolaylaştırabilir. Bu yazıda, ay numarasının ay adına dönüştürülmesi için kullanabileceğiniz farklı SQL sorgularını paylaşacağız.
Yöntem 1: DATENAME ve DATEADD Kullanımı
DECLARE @AyNumarasi INT
SET @AyNumarasi = 1
SELECT
DATENAME(MONTH, DATEADD(MONTH, @AyNumarasi, -1)) AS AyAdi
Yöntem 2: SUBSTRING ile Dönüştürme
DECLARE @AyNumarasi INT
SET @AyNumarasi = 1
SELECT SUBSTRING('OCA ŞUB MAR NIS MAY HAZ TEM AGU EYL EKI KAS ARA ',
(@AyNumarasi * 4) - 3, 3) AS AyAdi
Yöntem 3: FORMAT Fonksiyonu
DECLARE @AyNumarasi INT
SET @AyNumarasi = 1
SELECT FORMAT(DATEFROMPARTS(1900, @AyNumarasi, 1), 'MMMM', 'tr-TR') AS AyAdi
Yöntem 4: CASE Yapısı ile Kontrol
DECLARE @AyNumarasi INT = 13;
SELECT
CASE
WHEN @AyNumarasi = 1 THEN 'Ocak'
WHEN @AyNumarasi = 2 THEN 'Şubat'
WHEN @AyNumarasi = 3 THEN 'Mart'
WHEN @AyNumarasi = 4 THEN 'Nisan'
WHEN @AyNumarasi = 5 THEN 'Mayıs'
WHEN @AyNumarasi = 6 THEN 'Haziran'
WHEN @AyNumarasi = 7 THEN 'Temmuz'
WHEN @AyNumarasi = 8 THEN 'Ağustos'
WHEN @AyNumarasi = 9 THEN 'Eylül'
WHEN @AyNumarasi = 10 THEN 'Ekim'
WHEN @AyNumarasi = 11 THEN 'Kasım'
WHEN @AyNumarasi = 12 THEN 'Aralık'
ELSE 'Geçersiz Ay Numarası'
END AS AyAdi;
Yöntem 5: XML Kullanarak Ay Adı Bulma
DECLARE @Aylar NVARCHAR(MAX) = 'OCA ŞUB MAR NIS MAY HAZ TEM AGU EYL EKI KAS ARA';
DECLARE @AyNumarasi INT = 1;
DECLARE @AyAdi NVARCHAR(3);
SELECT
@AyAdi = TRIM(value)
FROM (
SELECT
CAST('' + REPLACE(@Aylar, ' ', '') + '' AS XML).value('/x[sql:variable("@AyNumarasi")][1]', 'NVARCHAR(MAX)') AS value
) AS AyIsimleri;
SELECT @AyAdi AS AyAdi;
Yöntem 6: CHOOSE ve SUBSTRING Kullanımı
DECLARE @Aylar NVARCHAR(MAX) = 'OCAKŞUBATMARTNİSANMAYISHAZİRANTEMMUZAĞUSTOSETEKİMKASIMARALIK';
DECLARE @AyNumarasi INT = 1;
DECLARE @AyAdi NVARCHAR(20);
SET @AyAdi = CHOOSE(@AyNumarasi,
SUBSTRING(@Aylar, 1, 4),
SUBSTRING(@Aylar, 5, 5),
SUBSTRING(@Aylar, 10, 4),
SUBSTRING(@Aylar, 14, 6),
SUBSTRING(@Aylar, 20, 4),
SUBSTRING(@Aylar, 24, 7),
SUBSTRING(@Aylar, 31, 5),
SUBSTRING(@Aylar, 36, 7),
SUBSTRING(@Aylar, 43, 5),
SUBSTRING(@Aylar, 48, 4),
SUBSTRING(@Aylar, 52, 5),
SUBSTRING(@Aylar, 57, 6)
);
SELECT @AyAdi AS AyAdi;
Yöntem 7: CHOOSE ile Basit Seçim
SELECT CHOOSE(
1,
'Ocak',
'Şubat',
'Mart',
'Nisan',
'Mayıs',
'Haziran',
'Temmuz',
'Ağustos',
'Eylül',
'Ekim',
'Kasım',
'Aralık'
) AS AyAdi;
Yöntem 8: FORMAT ve DATEADD Kombinasyonu
DECLARE @AyNumarasi INT = 1;
SELECT FORMAT(DateAdd(MONTH, @AyNumarasi - 1, '19000101'), 'MMMM', 'tr-TR') AS AyAdi;
Bu yöntemlerle ay numaralarının SQL Server’da ay adlarına dönüştürülmesini kolayca yapabilirsiniz. Hangi yöntemin sizin için en uygun olduğunu belirlemek için ihtiyacınız olan duruma göre seçim yapabilirsiniz.
Herkese çalışma hayatında ve yaşamında başarılar ve kolaylıklar dilerim!
