SQL Server’da İki Tarih Arasındaki Saat, Gün, Ay ve Yılları Tablo Olarak Döndüren Fonksiyon
Herkese merhaba,
Bu yazıda SQL Server’da iki tarih arasındaki saat, gün, ay ve yılları tablo olarak döndüren fonksiyon ile ilgili bilgi vermeye çalışacağım.
SQL Server’da bazı durumlarda iki tarih arasındaki saat, gün, ay ve yılları tablo olarak döndürmek isteyebilirsiniz.
Aşağıdaki fonksiyonu kullanarak siz de bu işlemi rahatlıkla yapabilirsiniz.
CREATE FUNCTION TarihTablosu (@baslangic DATETIME,
@bitis DATETIME,
@tur CHAR(5) --'saat', 'gün', 'ay', 'yıl' değerlerini alabilir. Default değer 'gün' dür.
)
RETURNS @Sonuc TABLE (
Tarih DATETIME
)
AS
BEGIN
DECLARE @bugun DATETIME
SET @bugun = @baslangic
WHILE @bugun <= @bitis
BEGIN
INSERT INTO @Sonuc
VALUES (@bugun)
SELECT
@bugun =
CASE
WHEN @tur = 'yıl' THEN DATEADD(yy, 1, @bugun)
WHEN @tur = 'ay' THEN DATEADD(mm, 1, @bugun)
WHEN @tur = 'saat' THEN DATEADD(hh, 1, @bugun)
ELSE DATEADD(dd, 1, @bugun)
END
END
RETURN
END
GO
--Çalıştırılması
SET DATEFORMAT DMY
SELECT
Tarih
FROM dbo.TarihTablosu('01.01.2010', '01.05.2010', 'saat')
SELECT
Tarih
FROM dbo.TarihTablosu('01.01.2010', '01.05.2010', 'gun')
SELECT
Tarih
FROM dbo.TarihTablosu('01.01.2010', '01.05.2010', 'ay')
SELECT
Tarih
FROM dbo.TarihTablosu('01.01.2010', '01.05.2015', 'yıl')
Yukarıdaki fonksiyonu oluşturup çalıştırınca aşağıdakine benzer bir sonuç göreceksiniz.
Görüldüğü üzere iki tarih arasındaki saat, gün, ay ve yılları tablo olarak döndürmüş olduk.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.