İçeriğe geç

SQL ile yaş hesaplama

14.668 defa okundu

Konu: Veri Analizi

SQL ile yaş hesaplama

MS SQL ile doğum tarihinden yaş hesaplamak için günün tarihinden doğum tarihi çıkarılıp 365'e bölünerek çıkan sonuç sayı tipene dönüştürülerek hesap yapılabilir.

SQL
  1. SELECT CONVERT(INT,GETDATE()-'1995-01-01')/365 AS YAS

Ya da her defa yukarıdaki scripti yazmak yerine bir defa bir fonksiyon oluşturup, her zaman hazırlanan kullanıcı tanımlı fonksiyon çağrılabilinir.

Ayrıca yukardaki sql ifadesinde yıl 365 bölünmüş olup artık yıldan dolayı 1 günden kaynaklanan hatalı sonuç alınabilmekte olup, aşağıdaki yaş hesaplama fonksiyonunda bu hata meydana gelmemekte ve daha doğru sonuç elde edilebilmektedir.

Yaş hesaplayan kullanıcı tanımlı fonksiyon aşağıdaki gibidir.

SQL
  1. CREATE FUNCTION [dbo].[FN_YAS_HESAPLA] (@DTARIH AS DATETIME)
  2. RETURNS INT AS
  3. BEGIN
  4. DECLARE @SONUC AS INT
  5. IF ISNULL(@DTARIH,0)=0
  6. BEGIN
  7. SET @SONUC=0
  8. END
  9. ELSE IF MONTH(GETDATE())>MONTH(@DTARIH)
  10. BEGIN
  11. SET @SONUC=(SELECT DATEDIFF(YEAR, @DTARIH, GETDATE()))
  12. END
  13. ELSE IF (MONTH(GETDATE())=MONTH(@DTARIH) AND DAY(GETDATE())>=DAY(@DTARIH))
  14. BEGIN
  15. SET @SONUC=(SELECT DATEDIFF(YEAR, @DTARIH, GETDATE()))
  16. END
  17. ELSE
  18. BEGIN
  19. SET @SONUC=(SELECT DATEDIFF(YEAR, @DTARIH, GETDATE())-1)
  20. END
  21. RETURN @SONUC
  22. END
  23. ---Fonksiyonun Kullanılışı
  24. SELECT dbo.FN_YAS_HESAPLA('1995-01-01')
Sorgu sonucu
  1. 24

Bu yazı işinize yaradı mı?

Veri Analizi konusundaki diğer yazılar

Veri Analizi: 17 yazının tümü →

WhatsApp'ta paylaş

İlgili Yazılar