IF  EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[YilAyveGunFarkiGosterenFonksiyon]') AND xtype in (N'FN', N'IF', N'TF'))
DROP FUNCTION [dbo].[YilAyveGunFarkiGosterenFonksiyon]
go

CREATE FUNCTION YilAyveGunFarkiGosterenFonksiyon
(
    @BaslangicTarihi SMALLDATETIME,
    @BitisTarihi SMALLDATETIME
)
RETURNS VARCHAR(50)
AS
BEGIN

    DECLARE @TempTarih SMALLDATETIME;

    DECLARE @Ay INT,
            @Yil INT,
            @Gun INT;

    IF @BaslangicTarihi > @BitisTarihi
    BEGIN
        SET @TempTarih = @BitisTarihi;
        SET @BitisTarihi = @BaslangicTarihi;
        SET @BaslangicTarihi = @TempTarih;
    END;



    SELECT @Ay = DATEDIFF(MONTH, @BaslangicTarihi, @BitisTarihi);

    IF DATEADD(MONTH, @Ay, @BaslangicTarihi) > @BitisTarihi
    BEGIN
        SET @Ay = @Ay - 1;
    END;
    SET @Gun = DATEDIFF(DAY, DATEADD(MONTH, @Ay, @BaslangicTarihi), @BitisTarihi);

    SET @Yil = @Ay / 12;
    SET @Ay = @Ay % 12;

    RETURN (CASE
                WHEN @Yil = 0 THEN
                    ''
                WHEN @Yil = 1 THEN
                    CONVERT(VARCHAR(50), @Yil) + ' Yýl '
                WHEN @Yil > 1 THEN
                    CONVERT(VARCHAR(50), @Yil) + ' Yýl '
            END
           ) + (CASE
                    WHEN @Ay = 0 THEN
                        ''
                    WHEN @Ay = 1 THEN
                        CONVERT(VARCHAR(50), @Ay) + ' Ay '
                    WHEN @Ay > 1 THEN
                        CONVERT(VARCHAR(50), @Ay) + ' Ay '
                END
               ) + (CASE
                        WHEN @Gun = 0 THEN
                            ''
                        WHEN @Gun = 1 THEN
                            CONVERT(VARCHAR(50), @Gun) + ' Gün '
                        WHEN @Gun > 1 THEN
                            CONVERT(VARCHAR(50), @Gun) + ' Gün '
                    END
                   );

END;