- Katılım
- 4 Haz 2018
- Mesajlar
- 289
- En iyi yanıt
- 4
- Puanları
- 63
- Yaş
- 34
- Konum
- Antalya / Merkez
- Ad Soyad
- Vedat ÖZER
- Office Vers.
- 2019
Selamlar,
Sql'de kıdem yılı bulma fonksiyonu.
Kullanım Şekli;
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())