SQL Server’da İki Tarih Arasında Hafta Sonu Olmayan Günleri Listeleyen Fonksiyon

Herkese merhaba,

Bu yazıda SQL Server’da iki tarih arasında hafta sonu olmayan günleri listeleyen fonksiyon hakkında bilgi vereceğim.

SQL Server’da bazı durumlarda iki tarih arasında hafta sonu olmayan günleri listelemek isteyebiliriz.

Aşağıdaki fonksiyon yardımıyla bu işlemi rahatlıkla yapabilirsiniz.

CREATE FUNCTION IkiTarihArasindakiHaftaSonuOlmayanGunleriListele
(
    @BaslangicTarihi DATE,
    @BitisTarihi DATE
)
RETURNS TABLE
AS
RETURN WITH N1 (N)
       AS (SELECT 1
           FROM
           (
               VALUES
                   (1),
                   (1),
                   (1),
                   (1),
                   (1),
                   (1),
                   (1),
                   (1),
                   (1),
                   (1)
           ) n (N) ),
            N2 (N)
       AS (SELECT 1
           FROM N1 AS N1
               CROSS JOIN N1 AS N2),
            N3 (N)
       AS (SELECT 1
           FROM N2 AS N1
               CROSS JOIN N2 AS N2),
            N4 (N)
       AS (SELECT ROW_NUMBER() OVER (ORDER BY N1.N)
           FROM N3 AS N1
               CROSS JOIN N3 AS N2)
SELECT Date = DATEADD(DAY, N - 1, @BaslangicTarihi)
FROM N4
WHERE N < DATEDIFF(DAY, @BaslangicTarihi, @BitisTarihi) + 2
      AND DATEDIFF(DAY, 1 - N, @BaslangicTarihi) % 7 NOT IN ( 5, 6 );

GO

--Kullanımı 

SELECT * FROM dbo.IkiTarihArasindakiHaftaSonuOlmayanGunleriListele('20200501', '20200531');

Fonksiyonu oluşturup çalıştırdığınızda aşağıdaki gibi bir sonuç göreceksiniz.

SQL Server’da İki Tarih Arasında Hafta Sonu Olmayan Günleri Listeleyen Fonksiyon

Görüldüğü üzere iki tarih arasında hafta sonu olmayan günler listelenmiş oldu.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

634 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.

You may also like...

Yazı kopyalamak yasaktır!