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.

1.854 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!