2016-04-04 28 views
2

SQL'de zaman çözünürlüğü ile ilgili yapılması gereken bir şeyle karşılaştım. İşte kullandım bir örnek:datetime öğesini milisaniye olarak SQL Server tablo sorununa ekleme

CREATE TABLE #table 
(
    DTstamp DATETIME NOT NULL 
) 

INSERT INTO #table VALUES ('1 apr 2016 15:01:02:129') 

SELECT DTstamp FROM #table 

DROP TABLE #table 

SQL Server Management Studio'da gösterilen SELECT gelen sonuç bu durumda 0.001 olarak kapalıdır:

2016-04-01 15:01:02.130 

birden çok değer çalışırken, sonuç gösterilir genellikle girilen sürenin 0,003 sn. Uyuşmazlığın nereden geldiğini bilen var mı?

SQL Versiyon:

Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) 
Oct 20 2015 15:36:27 
Copyright (c) Microsoft Corporation 
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) 

cevap

4

MSDN'den https://msdn.microsoft.com/en-CA/library/ms187819.aspx göre, veri türü [DateTime] doğruluğu çözmek için

".000 artışlarla, .003 veya .007 saniye Yuvarlak" bir Sorununuz, aşağıdaki gibi DateTime2(3) kullanın:

CREATE TABLE #table 
(
    DTstamp DATETIME2(3) NOT NULL 
) 
INSERT INTO #table VALUES ('1 apr 2016 15:01:02:129') 
SELECT DTstamp FROM #table 
DROP TABLE #table 
+0

Parlak, çok teşekkürler! – Andrew