SQL ile yaş hesaplama

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.

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

Yada 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.

CREATE FUNCTION [dbo].[FN_YAS_HESAPLA] (@DTARIH AS DATETIME) 

RETURNS INT AS
BEGIN
DECLARE @SONUC AS INT

IF ISNULL(@DTARIH,0)=0
BEGIN
SET @SONUC=0
END
ELSE IF MONTH(GETDATE())>MONTH(@DTARIH)
BEGIN
SET @SONUC=(SELECT DATEDIFF(YEAR, @DTARIH, GETDATE()))
END
ELSE IF (MONTH(GETDATE())=MONTH(@DTARIH) AND DAY(GETDATE())>=DAY(@DTARIH))
BEGIN
SET @SONUC=(SELECT DATEDIFF(YEAR, @DTARIH, GETDATE()))
END
ELSE
BEGIN
SET @SONUC=(SELECT DATEDIFF(YEAR, @DTARIH, GETDATE())-1)
END
RETURN @SONUC
END

---Fonksiyonun Kullanılışı

SELECT dbo.FN_YAS_HESAPLA('1995-01-01')

---Sonuç
24


İlgili Yazılar