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.

SQL Server Eğitimleri Kanalına Abone Olun

Şunlar makaleler de hoşunuza gidebilir