SQL Server’da Datetime ve Datetime2 Veri Tipleri Arasındaki Farklar
Herkese merhaba,
Bu başlık altında SQL Server’da Datetime ve Datetime2 arasındaki farkları inceleyeceğiz.
DateTime2, Date ve Time değerini depolamak için Sql Server 2008’de tanıtılan yeni veri türü’dür.
DateTime
Minimum Değer
1753-01-01 00:00:00
Maksimum Değer
9999-12-31 23:59:59.997
Kapladığı Alan
8 Byte
Kullanımı
DECLARE @now DATETIME
Uygunluk
ANSI / ISO uyumlu değildir.
Geçerli Tarih ve Saat Fonksiyonu
GetDate() – Veritabanı’nın geçerli tarih ve saatini DateTime veri tipinde döndürür.
Örnek :
SELECT GETDATE()
Sonuç : 2017-11-09 23:14:10.037
+/- Gün Eklemek ve Çıkarmak
Örnek :
DECLARE @simdi DATETIME = GETDATE()
SELECT
@simdi + 1
Sonuç : 2017-11-10 23:17:57.530
DateTime2[(n)]
Minimum Değer
0001-01-01 00:00:00
Maksimum Değer
9999-12-31 23:59:59.9999999
Kapladığı Alan
6 veya 8 Byte arası
Not: Parametre n isteğe bağlıdır ve belirtilmemişse kesirli saniye hassasiyeti 7 haneli olup 0 – 7 haneli olabilir. Kesirli saniyeler için hassaslık <3’tür ve 6 byte yer kaplar. Kesirli saniyeler için hassaslık 3 veya 4 alınır. 7 byte yer kaplar. Kesirli saniyeler için hassaslık> 4 den büyükse 8 byte yer kaplar.
Kullanımı
DECLARE @now DATETIME2(7)
Uygunluk
ANSI / ISO uyumludur.
Geçerli Tarih ve Saat Fonksiyonu
SYSDATETIME()– Veritabanı’nın geçerli tarih ve saatini Datetime2 veri tipinde döndürür.
Örnek :
SELECT SYSDATETIME()
Sonuç : 2017-11-09 23:15:45.9841110
+/- Gün Eklemek ve Çıkarmak
Başarısız – Dateadd fonksiyonunu kullanmanız gerekli aksi halde işlem başarısız olur.
Örnek :
DECLARE @simdikizaman2 DATETIME2 = sysdatetime()
SELECT
@simdikizaman2 + 1
Sonuç : Msg 206, Level 16, State 2, Line 3
Operand type clash: datetime2 is incompatible with int
Kesirli saniye hassasiyeti 3 olan Datetime2 veri tipi, Datetime veri tipinin aynısıdır.
Datetime2 (3) veri tipi Datetime veri tipine göre 7 baytlık bir depolama alanı kullanır ve Datetime veri tipine kıyasla daha yüksek tarih aralığına (yani, 0001-01-01 ila 9999-12-31) sahiptir.
Örnek
DECLARE @simdikizaman DATETIME = GETDATE()
,@simdikzaman2 DATETIME2(3) = sysdatetime()
SELECT
DATALENGTH(@simdikizaman) 'DateTime Kaplanan Alan'
,DATALENGTH(@simdikzaman2) 'DateTime2(3) Kaplanan Alan'
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.