Tarih Fonksiyonu
CREATE FUNCTION dbo.fnYilAyGun ( @BaslangicTarihi DATETIME, @BitisTarihi DATETIME ) RETURNS varchar(100) AS BEGIN DECLARE @Yil INT DECLARE @Ay INT DECLARE @Gun INT DECLARE @Sonuc VARCHAR(100) SET @Yil = DATEDIFF(yy, @BaslangicTarihi, @BitisTarihi) SET @Ay = DATEDIFF(mm, @BaslangicTarihi, @BitisTarihi) - (@Yil * 12) SET @Gun = DATEDIFF(dd, @BaslangicTarihi, @BitisTarihi) - ((@Yil * 365) + (@Ay * 30)) IF (@Yil < 1) BEGIN SET @Yil = '' END IF (@Ay < 1) BEGIN SET @Ay = '' END IF (@Gun < 1) BEGIN SET @Gun = '' END SET @Sonuc = (' ' + CAST(@Yil AS VARCHAR(4)) + ' Yıl ' + CAST(@Ay AS VARCHAR(2)) + ' Ay ' + CAST(@Gun AS VARCHAR(2)) + ' Gün') SET @Sonuc = REPLACE(@Sonuc, ' 0 Yıl', '') SET @Sonuc = REPLACE(@Sonuc, ' 0 Ay', '') SET @Sonuc = REPLACE(@Sonuc, ' 0 Gün', '') RETURN @Sonuc END
Fonksiyonumuzu yazdık, şimdi ise bunu SQL Server üzerinde oluştuğunu teyit edelim.
Oluşan Fonksiyon
Şimdi ise örnekler konuyu pekiştirmeye çalışalım.
Örnek 1
SELECT dbo.fnYilAyGun('2012-01-02', '2020-03-10') AS TarihFarki
Örnek 1 Sonuç
Örnek 2
SELECT dbo.fnYilAyGun('2018-04-20', '2018-05-28') AS TarihFarki