27 Temmuz 2012 Cuma

SQL Server – Date ve Time Veri Tipleri

Bildiğiniz gibi datetime veri tipi ile hem tarih hem zaman bilgisini bir arada tutabiliyoruz. Bu bilgilere ayrı ayrı ihtiyaç duyduğumuzda da bir çok gereksiz dönüşüm işi yapmak zorunda kalıyoruz. SQL Server üzerindeki Date ve Time tiplerini kullanarak bu karmaşaya bir çözüm üretilebilir. Tarih için Date ve tarihten bağımsız olarak sadece zaman bilgisi tutmak için de Time veri tipini kullanabiliriz.

BooksOnline’dan alınmış olan aşağıdaki tabloda date ve time veri tipleri ile ilgili bilgiler bulabilirsiniz.

image

Date ve Time veritipleri, tür dönüşümleri sırasında kendilerinden beklendiği gibi bir davranış sergiliyorlar. datetime tipinden, date ya da time tiplerine bilinçsiz (implicitly) tür dönüşümü yaparken dahi ihtiyaç duyulan doğru kısım otomatik olarak dönüştürülebiliyor.

Bilinmesi gereken önemli noktalardan birisi date + time aritmetiğinin mümkün olmadığıdır. Bu yüzden, eldeki date ve time değerlerinden bir datetime oluşturmak için aşağıdaki gibi bir extra çalışma yapmak gerekiyor:

DECLARE @tarih date = '2012-06-25';
DECLARE @zaman time = '12:17:08.050';
DECLARE @dt datetime2;

SET @dt = dateadd(ms, datediff(ms, 0, @zaman), cast(@tarih as datetime2));

select @dt;

Sonuç; 2012-06-25 12:17:08.050 şeklinde olacaktır.

Bir sonraki yazımda date ve time veritiplerinin .NET tarafında nasıl ele alınacağından bahsedeceğim.

Hiç yorum yok: