Herkese merhaba,
Bu yazıda SQL Server’da iki tarih arasındaki çalışma gün sayısını bulan fonksiyon hakkında bilgi vereceğim.
SQL Server’da bazı durumlarda iki gün arasındaki çalışma gün sayısının hesaplanması istenebilir.
Aşağıdaki fonksiyon yardımıyla bu işlemi rahatlıkla yapabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
CREATE FUNCTION dbo.IkiGunArasindakiCalismaGunleri ( @BaslangicTarihi DATETIME, @BitisTarihi DATETIME = NULL ) RETURNS INT AS BEGIN DECLARE @Degistirici DATETIME; IF @BaslangicTarihi IS NULL RETURN NULL; IF @BitisTarihi IS NULL SELECT @BitisTarihi = @BaslangicTarihi; SELECT @BaslangicTarihi = DATEADD(dd, DATEDIFF(dd, 0, @BaslangicTarihi), 0), @BitisTarihi = DATEADD(dd, DATEDIFF(dd, 0, @BitisTarihi), 0); IF @BaslangicTarihi > @BitisTarihi SELECT @Degistirici = @BitisTarihi, @BitisTarihi = @BaslangicTarihi, @BaslangicTarihi = @Degistirici; RETURN ( SELECT (DATEDIFF(dd, @BaslangicTarihi, @BitisTarihi) + 1) - (DATEDIFF(wk, @BaslangicTarihi, @BitisTarihi) * 2) - (CASE WHEN DATENAME(dw, @BaslangicTarihi) = 'Sunday' THEN 1 ELSE 0 END ) - (CASE WHEN DATENAME(dw, @BitisTarihi) = 'Saturday' THEN 1 ELSE 0 END ) ); END; GO --Kullanımı SELECT dbo.IkiGunArasindakiCalismaGunleri('20200106', '20200114') AS ÇalışmaGünSayısı; |
Fonksiyonu oluşturup çalıştırdığınızda aşağıdaki gibi bir sonuç alacaksınız.
Görüldüğü üzere iki tarih arasındaki çalışma gün sayısı hesaplanmış oldu.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.
