SQL Server'da Yıl, Ay Ve Gün Farkı Gösterimi
-
Uygulamalarınızda iki tarih arasındaki değerleri A Yıl, B Ay, C Gün şeklinde gösterme gereği duyarız. Yaptığımız küçük bir uygulama ile bu gösterimi sağlamış olacağız.
Veritabanı işlemleri yaparken tarih verilerinin daha güzel bir gösterimi için bazı method yada fonksiyonlara ihtiyaç duyarız. Kısaca o fonksiyonu sizlere aktaralım. Fonksiyonumuz iki tane tarih verisi istemektedir. Verilen iki tarihi işledikten sonra gösterim olarak örneğin '2 Yıl 7 Ay 16 Gün' olarak bize geridönüş sağlamaktadır.
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 ENDFonksiyonumuzu yazdık, şimdi ise bunu SQL Server üzerinde oluştuğunu teyit edelim.
Oluşan Fonksiyon

Örnek 1
SELECT dbo.fnYilAyGun('2012-01-02', '2020-03-10') AS TarihFarkiÖrnek 1 Çıktı

Örnek 2
SELECT dbo.fnYilAyGun('2018-04-20', '2018-05-28') AS TarihFarki
Örnek 2 Çıktı
Bol örnekli günler.
Kaynak: https://www.ontedi.com/sql/sql-serverda-yil-ay-ve-gun-farki-gosterimi
ontedi tarafından 03/Nis/20 10:21 tarihinde düzenlenmiştir
