2008-01-22

MS SQL Server 2008 - Yeni Tarih Veri Tipleri

SQL Server'ın daha önceki sürümlerinde tarih ve zaman veri tiplerinin eksikliğini yaşardık. Hatta bu eksikliği gidermek için tarih veri tiplerini çeşitli dönüşümlerden geçirip kendi veri tipimizi oluşturma yoluna giderdik. Microsoft geçte olsa bu eksikliğin farkına varıp MS SQL Server 2008 ile birlikte bu tarih veri tiplerinin eksikliğini giderdi. MS SQL Server 2008 ile birlikte mevcut tarih veri tiplerine(smalldatetime, datetime) ek olarak date, time, datetime2, datetimeoffset yeni tarih tipleri geliyor. Şimdi yeni gelen bu tarih veri tiplerinin ne oduğunu incelemeye başlayalım:

TIME : Günün saat, dakika, saniye ve salise bilgilerini 24 saat esasına tutar. SQL Server 2008 Saliseyi 7 digitlik hassasiyette tutuyor. SQL Server 2005 te bunu 3 digit olarak alırdık. Alabileceği değerler 00:00:00.0000000 ile 23:59:59.9999999 arasındadır.

Örnek: Şu anki zamanı TIME cinsinden alalım.
DECLARE @Zaman TIME
SET @Zaman=GETDATE()
SELECT @Zaman
10:48:27.1234567

TIME için herhangi bir hassasiyet belirtmediğimiz için salise kısmını 7 digit olarak gösteriyor. Eğer TIME’ın hassasiyetini 3 digit olarak göstermek istersek aşağıdaki gibi yapabiliriz:

DECLARE @Zaman TIME(3)
SET @Zaman=GETDATE()
SELECT @Zaman
10:48:27.123


DATE : Sadece tarihi tutarak içerisinde gün ay yıl bilgilerini barındırır. Alabileceği değerler 01-01-01 ile 9999-12-31 arasındadır.

Örnek:
DECLARE @Tarih DATE
SET @ Tarih =GETDATE()
SELECT @ Tarih
2008-01-22

DATETIME2 : DATE ve TIME veri tiplerinin bir araya gelmesiyle oluşur. SQL Server 2005 te kullandığımız DATETIME dan iki farkı var. Bunlar salise hanesinin 7 digit hassasiyetinde tutulması ve tarih değerinin 01-01-01 ilk değerini alabilmesi.

Örnek:
DECLARE @Tarih DATETIME2
SET @ Tarih =GETDATE()
SELECT @ Tarih
2008-01-22 10:48:27.1234567

Örnek: Salisenin hassasiyetini 3 digite çekelim.
DECLARE @Tarih DATETIME2(3)
SET @ Tarih =GETDATE()
SELECT @ Tarih
2008-01-22 10:48:27.123

DATETIMEOFFSET : Bu veri tipi ile birlikte tarih alanlarımızda saat dilimini de saklayabileceğiz. Bu tarih tipi özellikle farklı saat dilimlerindeki kayıtlarımız üzerinde ekleme çıkarma vs gibi işlemler yapıyorsak çok işimize yarayacak.

Örnek:
SELECT CAST(‘2008-01-22 10:48:27.1234567 +2:00’ AS DATETIMEOFFSET(7))

2008-01-22 10:48:27.1234567 +2:00

Hiç yorum yok:

.::YASAL UYARI::.

©2004-2016 Mehmet GÜZEL, http://www.mehmetguzel.net/ & http://www.mehmetguzel.com/

Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.