İki zaman arası farkı bulan DATEDIFF Fonksiyonu Kullanımı

Bu dersimizde SQL Server Veritabanı içinde yer alan önemli fonksiyonlardan biri olan DATEDIFF() fonksiyonunu inceleyeceğiz. Peki nerelerde kullanabiliriz?  Örneğin personel tablomuzda personelimizin doğum tarihi alanı var ve biz yaşı bulmak isteyebiliriz, ya da personelimizin işe giriş tarihinden itibaren işte kaç gün geçtiğini bulmak isteyebiliriz. Bir sınavın başlangıç ve bitiş zamanını verip, bu fonksiyonu belli zaman aralıklarında çalıştırarak sınavın biaşlangıcından itibaren kaç dakika geçtiğini bulabiliriz. Örnekleri çoğaltmak mümkün, şimdi gelelim fonksiyonunun yazım şekline.
 
DATEDIFF(year, 'Başlangıç Tarihi', 'Bitiş Tarihi)

Burada iki tarih arası yıl farkını bulmak istediğimiz için year yazdık, gün, hafta, saniye, milisaniye, mikrosaniye ve hatta nanosaniye olarak bile bulabilirsiniz.  

Şimdi personeldb isimli bir veritabanı oluşturup, aşağıdaki alanları içeren bir tblpersonel tablosu yapalım.



Şimdi personelimizin yaşlarını bulup büyükten küçüğe sıralayalım. Bulunduğumuz aktif tarihi almak için GETDATE() fonksiyonundan yararlanıyoruz. 


SELECT p.ADI, p.SOYADI, 
DATEDIFF(year,p.DOGUMTARIHI, GETDATE()) AS YAS
FROM tblpersonel p ORDER BY YAS DESC

Yukarıdaki SQL kodunu SQL Server Entreprise Manager içinde aşağıdaki gibi yeni bir SQL Query alanında yazıp deneyebilirsiniz. 
 



Şimdi de iki tarih arası gün farkını bulabiliriz. Bunun için aşağıdaki SQL Kodunu yazıyoruz.

SELECT p.ADI, p.SOYADI, 
DATEDIFF(day,p.DOGUMTARIHI, GETDATE()) AS GECEN_GUN
FROM tblpersonel p ORDER BY GECEN_GUN DESC




CREATE PROC sp_yas_bul
@tc VARCHAR(50)
AS BEGIN
 
SELECT p.ADI, p.SOYADI, 
DATEDIFF(year,p.DOGUMTARIHI, GETDATE()) AS YAS
FROM tblpersonel p WHERE p.TCKIMLIKNO=@tc

END


DATEDIFF() fonksiyonu gibi SQL Server Veritabanı içinde kullanılan birçok fonksiyonu ilerleyen derslerde inceleyeceğiz. Stored Procedure içinde de bu fonksiyonun kullanımını göreceğiz. 

SQL Server Derslerine Aşağıdaki bağlantıdan ulaşabilirsiniz.
Tüm SQL Server Dersleri


KAYNAKLAR
https://docs.microsoft.com/en-us/sql/t-sql/functions/datediff-transact-sql?view=sql-server-2017

Mutlu kodlamalar,
Oğuzhan TAŞ
Nisan, 2019




Bookmark and Share