SQL Server’da İki Tarih Arasındaki Yıl, Ay ve Gün Farkını Gösteren Fonksiyon

Herkese merhaba,

Bu yazıda SQL Server’da iki tarih arasındaki yıl, ay ve gün farkını gösteren fonksiyon hakkında bilgi vereceğim.

SQL Server’da bazı durumlarda iki tarih arasındaki yıl, ay ve gün farkını göstermek isteyebiliriz.

Aşağıdaki fonksiyon yardımıyla bu işlemi rahatlıkla yapabilirsiniz.

CREATE  FUNCTION YılAyveGunFarkiGosterenFonksiyon
(
    @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;

--Kullanımı

SELECT dbo.YılAyveGunFarkiGosterenFonksiyon('2020-01-01',GETDATE()) AS Tarih

Fonksiyonu oluşturup çalıştırdığınızda aşağıdaki gibi bir sonuç göreceksiniz.

SQL Server’da İki Tarih Arasındaki Yıl, Ay ve Gün Farkını Gösteren Fonksiyon

Görüldüğü üzere iki tarih arasındaki yıl, ay ve gün farkı gösterilmiş oldu.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

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