SQL Server 2008’de Time tipiyle ilgili küçük bir uyarı


SQL Server 2008’de date ve time bilgilerini ayrı tiplerde tutmanız mümkün.

Eskiden sadece tarih bilgisine ihtiyaç duyup saat kısmına gerek duymuyorsanız ya da sadece zamana ihtiyaç duyup tarih kısmına ihtiyaç duymuyorsanız bile datetime tipi kullanmak zorunda idiniz. Bu da gereksiz yere alan işgali ve kırpmayla ilgili yazılacak kodlar anlamına geliyordu.

Şimdi date ve time diye ayrı ayrı veri tipleri var. Sadece tarih tutmak için date tipini, sadece zaman tutmak için time tipini kullanabilirsiniz.

Hem veritabanında 6 yerine 3 byte kullanarak hem de gereksiz kırpma kodlarını yazma zorunluluğundan kurtulduğunuz için yeni uygulama faydalı.

Ancak dikkat edilmesi gereken bir detay var: Time tipinin kapladığı yer değişken, 3 ila 5 byte yer kaplayabiliyor. Bunu belirleyen hangi detayda bilgi tuttuğunuz. Saniyenin kaçta birini tutmak istersiniz? Hassasiyetiniz bir saniyeden 100 nanosaniyeye kadar değişiklik gösterebilir.

Değişken tipini belirlerken time(n) tipiyle yapıyoruz bu işi. Mesela time(3) için 4 byte, time(5) için 5 byte kullanmaya başlayabiliyor. Eğer bu kadar hassas olmak istemiyorsanız, boş yere time(2)’den daha hassas kullanıp boşuna byte’larınızı harcamayın.

Küçük bir not: Benzer bir kaygıya datetimeoffset(n) ve datetime2(n)’i kullanırken de sahip olmalısınız. Buralarda da n’de belirttiğiniz hassasiyete göre 2 byte’a kadar tasarruf etmeniz mümkün.

Bu yazı SQL Server 2008 içinde yayınlandı. Kalıcı bağlantıyı yer imlerinize ekleyin.

2 Responses to SQL Server 2008’de Time tipiyle ilgili küçük bir uyarı

  1. Koray dedi ki:

    Merhaba hocam. Time tipinde değişken tuttuğunuzda gün gelipte o verileri farklı bir veri kaynağına aktarmaya kalktığınızda küçükte olsa bir sıkıntı çıkabiliyor (başka kaynaklarda bu tip bir değişken olmadığı taktirde) bilginize…

  2. Mustafa Acungil dedi ki:

    Aynı zamanın time’ını ayrı, date’ini ayrı tutmuşsanız, başka kaynağa aktarırken bunları birleştirmek gerekir. Eğer date’in önemi yok, sadece time’ın önemi varsa, bu durumda da başka kaynağa atarken elinizde date kısmı olmadığı için jenerik bir date eklemeniz gerekebilir.Ama tahmin ediyorum, diğer veritabanı sistemleri de sonraki versiyonlarında bu ayrıma yönelecektir. Tabii bu ne kadar zaman alır bilemem…

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s