SQL Server 2008 ile birlikte hali hazırda SQL Server 2005 de mevcut olan tarih tipleri yenileri eklenmiş oldu. Bu yeni tarih-zaman tipleri DATE, TIME, DATETIME2, DATETIMEOFFSET.
DATE : Çok fazla ihtiyaç duyulan bir veri tipi olduğunu düşünüyorum ve bu konuda geç kalındığını da düşünüyorum. Sadece gün, ay, yıl bilgisini tutabileceğimiz bir veri tipidir. Alabileceği değerler 01-01-01 ile 9999-12-31 arasındadır.
TIME : Ve gene DATE gibi çokça ihtiyaç duyabileceğimizi düşündüğüm bir veri tipi. Tarih ve zaman bilgisini ayrı ayrı tutmak istiyorum. Aynı alanda tutmak pratik gelmiyor bana diyenler için. Zaman bilgisini tutabileceğimiz bir veri tipidir TIME. Zaman bilgisini saat, dakika, saniye ve salise olarak tutar. Alabileceği değerler 00:00:00.0000000 ile 23:59:59.9999999 arasındadır. Değerlerden anlaşılabileceği üzere saliseyi 7 digitlik hassasiyetle tutabilmektedir. SQL Server 2005'de hassasiyet 3 digitlikti. Ve istersek SQL Server 2008 de hassasiyeti özelleştirebilir.
Declare @Zaman Time
Set @Zaman=GetDate()
Print @Zaman
16:58:37.6474204
Hassasiyeti 3 yapalım,
Declare @Zaman Time(3)
Set @Zaman=GetDate()
Print @Zaman
16:59:16.610
DATETIME2 : Yeni veri türlerinden bir diğeri DATE ve TIME veri türlerinin birleşmiş hali. Alabileceği değerler 01-01-01 00:00:00.0000000 ile 9999-12-31 23:59:59.9999999 arasındadır.
DATETIMEOFFSET : Saat dilimlerini de tutabileceğimiz bir veri tipidir.
PRINT CAST(GETDATE() AS DATETIMEOFFSET)
2009-01-03 17:06:10.0070000 +00:00