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.

SQL Server’da Sene Aralığına Ait Ay Bilgilerini Getirmek

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.

163 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

Aşağıdaki Yazılar da İlginizi Çekebilir

Yazı kopyalamak yasaktır!