Herkese merhaba,

Bu yazıda SQL Server’da Oracle MONTHS_BETWEEN fonksiyonunu yazmak hakkında bilgi vereceğim.

SQL Server’da bazı durumlarda başka veritabanlarında olan fonksiyonları görmek ve kullanmak isteyebiliriz.

MONTHS_BETWEEN fonksiyonu nedir?

MONTHS_BETWEEN fonksiyonu iki tarih arasındaki ay farkını bulmak için kullanılır.

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

CREATE FUNCTION SQLServer_MONTHS_BETWEEN
(
    @tarih1 DATETIME,
    @tarih2 DATETIME
)
RETURNS FLOAT
AS
BEGIN
    DECLARE @aylar FLOAT = DATEDIFF(MONTH, @tarih2, @tarih1);
    IF DAY(@tarih1) <> DAY(@tarih2)
       AND
       (
           MONTH(@tarih1) = MONTH(@tarih1 + 1)
           OR MONTH(@tarih2) = MONTH(@tarih2 + 1)
       )
    BEGIN
        IF DAY(@tarih1) < DAY(@tarih2)
            SET @aylar = @aylar + CONVERT(FLOAT, 31 - DAY(@tarih2) + DAY(@tarih1)) / 31 - 1;
        ELSE
            SET @aylar = @aylar + CONVERT(FLOAT, DAY(@tarih1) - DAY(@tarih2)) / 31;
    END;

    RETURN @aylar;
END;
GO

--Kullanımı

  SELECT dbo.SQLServer_MONTHS_BETWEEN('2022.09.25', '2021.09.25') AS AySayısı

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

SQL Server’da Oracle MONTHS_BETWEEN Fonksiyonu Yazmak

Görüldüğü üzere iki tarih arasındaki ay farkını hesaplamış oldu.

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

372 Kez Okundu

Kategoriler: