DateTime ve DateTime2 Tarih Türü Arasındaki Farklar
DataTime ve DateTime2 tarih türü arasındaki farklar aşağıda hazırladığım tablodaki gibidir.
DateTime | DateTime2[(n)] | |
Min Değer | 1753-01-01 00:00:00 | 0001-01-01 00:00:00 |
Max Değer | 9999-12-31 23:59:59.997 | 9999-12-31 23:59:59.9999999 |
Diskteki Boyutu | 8 Byte | 6 ile 8 byte arasında 7 basamağa kadar hassasiyet göstermektedir.Hassasiyet parametriktir.Eğer parametre değeri “0-7” verilmez ise varsayılan olarak “7” hassasiyet değeri kabul edilir. < 3 ise 6 byte, > 4 ise 8 byte bellekte yer kaplar. 3 ve 4 değeri ise bellekte 7 byte yer kaplar. |
Kullanımı | Declare @now datetime | Declare @now datetime2(7) |
Uygunluk | ANSI/ISO Uyumu yok | ANSI/ISO Uyumu var. |
Şuanki tarihi veren fonksiyon | GetDate()Örnek: SELECT GETDATE() Sonuç: 2015-02-05 14:58:53.240 |
SYSDATETIME()Örnek: SELECT SYSDATETIME() Sonuç: 2015-02-05 14:59:06.7643021 |
+/- Tarih İşlemleri / Gün ekleme örnekleri | Aşağıdaki kullanım şekli çalışmaktadır.
Örnek: |
Hata – Aşağıdaki kullanım şekli desteklenmemektedir. DateAdd fonksiyonu kullanılarak tarih işlemeri yapılmalıdır.
Örnek: |
Dikkat: DateTime2 veri türü eğer parametre değeri 3 olarak kullanılırsa DateTime ile aynı olur. Ayrıca DateTime2 (3) diskte 7 byte yer kaplar ve zaman aralığı daha fazladır. (0001-01-01 ile 9999-12-31) DateTime diskte 8 byte yer kapladığını unutmayalım. Şimdi konuyu pekiştirmek adına örneklendirelim;
[sql]
DECLARE @NowDateTime datetime=GETDATE(),
@NowDateTime2 datetime2(3)=SYSDATETIME()
SELECT DATALENGTH(@NowDateTime) ‘DateTime Disk Boyutu’,
DATALENGTH(@NowDateTime2) ‘DateTime2(3) Disk Boyutu’
[/sql]