SQL Server’da Sene Aralığına Ait Ay Bilgilerini Getirmek
Herkese merhaba. Bu yazıda SQL Server’da sene aralığına ait ay bilgilerini getirmek hakkında bilgi vereceğim.
SQL Server’da bazı durumlarda tarih aralığı vererek bir sene içindeki aylara ait bilgileri getirmek isteyebiliriz.
Bu bilgiler ne olabilir. Ay başlangıcı, ay bitişi, ay başlangıç tarihi, ay bitiş tarihi, ay adı, ay no, ay’ın hangi çeyrekte olduğu bilgisi.
Aşağıdaki kod yardımıyla bu işlemi rahatlıkla yapabilirsiniz.
SET LANGUAGE 'Turkish';
DECLARE @Tablo TABLE
(
BaslangicTarih DATETIME,
BitisTarih DATETIME
);
INSERT @Tablo
VALUES
('20191231', '20201231'); --Tarih kısmını buradan değiştirebilirsiniz.
WITH x
AS (SELECT DATEADD(m, 1, BaslangicTarih) AS Tarih
FROM @Tablo
UNION ALL
SELECT DATEADD(m, 1, Tarih)
FROM @Tablo t
INNER JOIN x
ON DATEADD(m, 1, x.Tarih) <= t.BitisTarih)
SELECT LEFT(CONVERT(VARCHAR, Tarih, 112), 6) AS PeriyotBilgisi,
DATEPART(dd, DATEADD(dd, - (DAY(Tarih) - 1), Tarih)) AyBaslangici,
DATEADD(dd, - (DAY(Tarih) - 1), Tarih) AyBaslangici_Tarihi,
DATEPART(mm, Tarih) AyNumara,
DATEPART(yy, Tarih) Yıl,
DATEPART(dd, DATEADD(dd, - (DAY(DATEADD(mm, 1, Tarih))), DATEADD(mm, 1, Tarih))) AyBitisGunu,
DATEADD(dd, - (DAY(DATEADD(mm, 1, Tarih))), DATEADD(mm, 1, Tarih)) AyBitisGunu_Tarihi,
DATENAME(MONTH, Tarih) AyAdi,
'Çeyrek' + CONVERT(VARCHAR(10), DATEPART(QUARTER, Tarih)) Ceyrek
FROM x
OPTION (MAXRECURSION 0);
Kodu çalıştırdığınızda aşağıdaki gibi bir sonuç alacaksınız.
Görüldüğü üzere sene aralığına ait ay bilgileri gelmiş oldu.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.