SQL Server 2016 – DATEDIFF_BIG Fonksiyonu
SQL Server 2016 ile birlikte gelen yeni fonksiyonlardan birisi de DATEDIFF_BIG fonksiyonudur. İki tarih arasındaki farkı bigint türünde geriye döndürür. DATEDIFF fonksiyonu geriye int türünde değer döndüğünden dolayı int türünden daha büyük değerlere ihtiyaç olması durumunda kullanılması için DATEDIFF_BIG fonksiyonu kullanıma sunulmuştur.
DATEDIFF_BIG Syntax : DATEDIFF_BIG( datepart,startdate,enddate )
Kullanımı :
[sql]
SELECT DATEDIFF_BIG(DAY,GETDATE(),GETDATE()+10)
[/sql]
Bu örnekte DATEDIFF ile DATEDIFF_BIG arasındaki farkı daha iyi anlamak için INT (max=2,147,483,647) veri türünün sınırını geçebilecek bir tarih farkı alalım.
[sql]
SELECT DATEDIFF(ms,’2016-01-01′,’2016-01-31′)
[/sql]
DATEDIFF bize INT (max=2,147,483,647) veri türü döndürdüğü için ve farkını almak istediğimiz zaman bilgisi INT veritürü sınırını geçtiği için overflow hatası meydana geldi.
Şimdi de aynı sorguyu DATEDIFF_BIG fonksiyonu ile çalıştıralım;
[sql]
SELECT DATEDIFF_BIG(ms,’2016-01-01′,’2016-01-31′)
[/sql]
Sorgu sonucunda da görüldüğü üzere 1 aylık milisaniye bazındaki tarih farkını DATEDIFF_BIG fonksiyonu ile başarıyla almış olduk.
INT türünde dönüş yapan DATEDIFF fonksiyonu yetersiz kaldığı durumda BIGINT veri türünde dönüş yapan DATEDIFF_BIG fonksiyonunu SQL Server 2016 versiyonu ile bilikte rahatça kullanabilirsiniz.
Genel Bilgi:
INT veri türü sınırları : -2,147,483,648 ile +2,147,483,647 arasındadır.
BIGINT veri türü sınırları: -9,223,372,036,854,775,808 ile 9,223,372,036,854,775,807 arasındadır.
Not: Bu içerikte kullanılan SQL Server sürümü : SQL Server 2016 CTP 3