SQL Server’da Belli Bir Tarih Aralığı İçinde Olan Ayların Gün Sayısını Bulmak
Herkese merhaba,
Bu yazıda SQL Server’da belli bir tarih aralığı içinde olan ayların gün sayısını bulmak ile ilgili bilgi vermeye çalışacağım.
SQL Server’da bazı durumlarda belli bir tarih aralığı içinde olan ayların gün sayısını bulmak isteyebilirsiniz.
Aşağıdaki kodu kullanarak siz de bu işlemi rahatlıkla yapabilirsiniz.
DECLARE @baslamatarihi DATE = '2022-07-10';
DECLARE @bitistarihi DATE = '2022-09-10';
WITH sorgu
AS (SELECT DATEFROMPARTS(YEAR(@baslamatarihi), MONTH(@baslamatarihi), 1) ay_baslangic_gunu,
1 - DAY(@baslamatarihi) + DAY( CASE
WHEN @bitistarihi > EOMONTH(@baslamatarihi) THEN
EOMONTH(@baslamatarihi)
ELSE
@bitistarihi
END
) AS gun_sayisi
UNION ALL
SELECT DATEADD(MONTH, 1, ay_baslangic_gunu),
CASE
WHEN @bitistarihi > DATEADD(MONTH, 2, ay_baslangic_gunu) THEN
DAY(EOMONTH(DATEADD(MONTH, 1, ay_baslangic_gunu)))
ELSE
DAY(@bitistarihi)
END
FROM sorgu
WHERE DATEADD(MONTH, 1, ay_baslangic_gunu) <= @bitistarihi)
SELECT *
FROM sorgu;
Yukarıdaki kodu çalıştırınca aşağıdakine benzer bir sonuç göreceksiniz.
Görüldüğü üzere belli bir tarih aralığı içinde olan ayların gün sayısını bulmuş olduk.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.