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