SQL KTF Kıdem Yılı-Ay-Gün Bulma

Vedat ÖZER

Logo Uzmanı
Geliştirici
Katılım
4 Haz 2018
Mesajlar
251
En iyi yanıt
4
Puanları
63
Yaş
30
Konum
Antalya / Merkez
Ad Soyad
Vedat ÖZER
Office Versiyon
2019
Selamlar,

Sql'de kıdem yılı bulma fonksiyonu.

SQL:
IF EXISTS (SELECT * FROM DBO.SYSOBJECTS WHERE ID = OBJECT_ID(N'FN_KIDEM') AND XTYPE IN (N'FN', N'IF', N'TF')) DROP FUNCTION FN_KIDEM

GO

CREATE FUNCTION [dbo].[FN_KIDEM] (@Tarih1 DATETIME,@Tarih2 DATETIME)
RETURNS CHAR(50)
AS
BEGIN
DECLARE @Gun AS INT,@Ay AS INT,@Yil AS INT,@GunAl AS INT,@AyAl AS INT,@Sonuc CHAR(100)
IF @Tarih2>=@Tarih1
BEGIN
IF DAY(@Tarih2)>=DAY(@Tarih1)
BEGIN
SET @Gun=DAY(@Tarih2)-DAY(@Tarih1)
END
ELSE
BEGIN
SET @Gun=(DAY(@Tarih2)+30)-DAY(@Tarih1)
SET @GunAl=1
END

IF (MONTH(@Tarih2)-ISNULL(@GunAl,0))>=MONTH(@Tarih1)
BEGIN
SET @Ay=MONTH(@Tarih2)-MONTH(@Tarih1)
END
ELSE
BEGIN
SET @Ay=(MONTH(@Tarih2)+12)-(MONTH(@Tarih1)+ISNULL(@GunAl,0))
SET @AyAl=1
END

IF (YEAR(@Tarih2)-ISNULL(@AyAl,0))>=YEAR(@Tarih1)
BEGIN
SET @Yil=YEAR(@Tarih2)-(YEAR(@Tarih1)+ISNULL(@AyAl,0))
END
ELSE
BEGIN
SET @Yil=YEAR(@Tarih2)-YEAR(@Tarih1)
END
SET @Sonuc=RTRIM(CONVERT(CHAR(3),@Yil))+' Yıl ' + LTRIM(CONVERT(CHAR(2),@Ay))+' Ay '+ RTRIM(CONVERT(CHAR(2),@Gun)) +' Gün '

END
ELSE
BEGIN
SET @Sonuc='Bitiş Tarihi Başlangıç Tarihinden Büyük'
END
RETURN @Sonuc
END

Kullanım Şekli;

SQL:
SELECT [dbo].[FN_KIDEM]('2010-06-21',GETDATE())
 
Üst Alt