SQL ile yaş hesaplama
14.668 defa okundu
Konu: Veri Analizi
İçindekiler
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
- 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
- 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')
Sorgu sonucu
- 24
Teşekkürler, geri bildiriminiz alındı.