İçeriğe geç

SQL ile Kıdem Yılı Hesaplama

7.214 defa okundu

Konu: İnsan Kaynakları

SQL ile Kıdem Yılı Hesaplama

SQL ile işe başlama ve bitiş tarihlerine göre verilen iki tarih arasındaki kıdem süresini yıl, ay, gün olarak hesaplanması için aşağıdaki gibi bir scalar fonksiyon yazmak gerekebilir.

Söz konusu scalar fonksiyon verilen iki tarih arasındaki farkı gün, ay ve yıl olarak bulmakta ve string değer olarak sonuç döndürmektedir.

Birinci tarih işe giriş tarihi, ikinci tarih bugünün tarihi veya işten ayrılma tarihidir. İkinci tarih birinci tarihten büyük olamaz.

Kıdem Süresi Fonksiyonunun Oluşturulması

SQL
  1. ALTER FUNCTION [dbo].[FN_KIDEM] (@Tarih1 DATETIME,@Tarih2 DATETIME)
  2. RETURNS CHAR(50)
  3. AS
  4. BEGIN
  5. DECLARE @Gun AS INT,@Ay AS INT,@Yil AS INT,@GunAl AS INT,@AyAl AS INT,@Sonuc CHAR(100)
  6. IF @Tarih2>=@Tarih1
  7. BEGIN
  8. IF DAY(@Tarih2)>=DAY(@Tarih1)
  9. BEGIN
  10. SET @Gun=DAY(@Tarih2)-DAY(@Tarih1)
  11. END
  12. ELSE
  13. BEGIN
  14. SET @Gun=(DAY(@Tarih2)+30)-DAY(@Tarih1)
  15. SET @GunAl=1
  16. END
  17. IF (MONTH(@Tarih2)-ISNULL(@GunAl,0))>=MONTH(@Tarih1)
  18. BEGIN
  19. SET @Ay=MONTH(@Tarih2)-MONTH(@Tarih1)
  20. END
  21. ELSE
  22. BEGIN
  23. SET @Ay=(MONTH(@Tarih2)+12)-(MONTH(@Tarih1)+ISNULL(@GunAl,0))
  24. SET @AyAl=1
  25. END
  26. IF (YEAR(@Tarih2)-ISNULL(@AyAl,0))>=YEAR(@Tarih1)
  27. BEGIN
  28. SET @Yil=YEAR(@Tarih2)-(YEAR(@Tarih1)+ISNULL(@AyAl,0))
  29. END
  30. ELSE
  31. BEGIN
  32. SET @Yil=YEAR(@Tarih2)-YEAR(@Tarih1)
  33. END
  34. SET @Sonuc=RTRIM(CONVERT(CHAR(3),@Yil))+' Yıl ' + LTRIM(CONVERT(CHAR(2),@Ay))+' Ay '+ RTRIM(CONVERT(CHAR(2),@Gun)) +' Gün '
  35. END
  36. ELSE
  37. BEGIN
  38. SET @Sonuc='Bitiş Tarihi Başlangıç Tarihinden Büyük'
  39. END
  40. RETURN @Sonuc
  41. END
  42. GO
  43. --Fonksiyonun Kullanılması
  44. SELECT [dbo].[FN_KIDEM]('2010-06-21','2017-04-05')
  45. --Fonksiyon Sonucu

6 Yıl 9 Ay 14 Gün

veya bugünün tarihi yerine Getdate() fonksiyonu kullanılabilir.

SQL
  1. SELECT [dbo].[FN_KIDEM]('2010-06-21',GETDATE())

Bu yazı işinize yaradı mı?

Bu konuda hesaplama aracı

İnsan Kaynakları konusundaki diğer yazılar

İnsan Kaynakları: 22 yazının tümü →

WhatsApp'ta paylaş

İlgili Yazılar