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.

SQL Server’da İki Tarih Arasındaki Saat, Gün, Ay ve Yılları Tablo Olarak Döndüren Fonksiyon

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.

565 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!