SQL Server’da Ay Numarasını Ay Adına Dönüştürmek
Herkese merhaba. Bu yazıda SQL Server’da ay numarasını ay adına dönüştürmek ile ilgili bilgi vermeye çalışacağım.
SQL Server’da bazı durumlarda ay numarasını ay adına dönüştürmek isteyebilirsiniz.
Tarihler ve saatlerle çalışmak SQL Server’da yaygın bir işlemdir. Ayların tam sayı olarak saklandığı (1’den 12’ye kadar) ve bunları ilgili ay adlarına (“Ocak”tan “Aralık”a) dönüştürmeniz gereken bir durumla karşılaşabilirsiniz. Bu işlem, raporlar oluşturmak veya kullanıcılar için daha okunabilir veri analizi gerçekleştirmek için oldukça yararlı olabilir.
Aşağıdaki kodları kullanarak sizler de bu işlemi rahatlıkla yapabilirsiniz.
1- ) Yöntem 1
DECLARE @AyNumarasi INT
SET @AyNumarasi = 1
SELECT
DATENAME(MONTH, DATEADD(MONTH, @AyNumarasi, -1)) AS AyAdi
2- ) Yöntem 2
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
3-) Yöntem 3
DECLARE @AyNumarasi INT
SET @AyNumarasi = 1
SELECT FORMAT(DATEFROMPARTS(1900, @AyNumarasi, 1), 'MMMM', 'en-US') AS Aydi
4- ) Yöntem 4
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;
5- ) Yöntem 5
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('<x>' + REPLACE(@Aylar, ' ', '</x><x>') + '</x>' AS XML).value('/x[sql:variable("@AyNumarasi")][1]', 'NVARCHAR(MAX)') AS value
) AS AyIsimleri;
SELECT @AyAdi AS AyAdi;
6- ) Yöntem 6
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;
7- ) Yöntem 7
SELECT CHOOSE(1, 'Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık') AS AyAdi
8- ) Yöntem 8
DECLARE @AyNumarasi INT = 1;
SELECT FORMAT(DATEADD(MONTH, @AyNumarasi - 1, '19000101'), 'MMMM') AS AyAdi
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.