क्या GETDATE () का एक एनालॉग है जो DATETIME2 लौटाता है


42

MSDN, Getdate (), GetUtcDate (), और CURRENT_TIMESTAMP के अनुसार सभी DATETIME लौटते हैं। मैंने एक छोटा परीक्षण चलाया, जो इस बात की पुष्टि करता है:

CREATE TABLE #t(T DATETIME2(7));
GO

DECLARE @i INT ;
SET @i=1;

WHILE @i<10000 BEGIN ;
INSERT #t VALUES(CURRENT_TIMESTAMP) ;
SET @i=@i+1;
END ;

SELECT DISTINCT t 
FROM #t 
ORDER BY t ;

---

2013-01-28 13:23:19.4930000
2013-01-28 13:23:19.4970000
2013-01-28 13:23:19.5000000
2013-01-28 13:23:19.5030000
2013-01-28 13:23:19.5070000
2013-01-28 13:23:19.5100000
2013-01-28 13:23:19.5130000

(स्निप)

क्या एक समान कार्य है जो DATETIME2 (7) देता है?

जवाबों:


53

SYSDATETIMEकोई DATETIME2वस्तु लौटाता है ।

CREATE TABLE #t(T DATETIME2(7));
GO

DECLARE @i INT ;
SET @i=1;

WHILE @i<10000 BEGIN ;
INSERT #t VALUES(SYSDATETIME()) ;
SET @i=@i+1;
END ;

SELECT DISTINCT t 
FROM #t 
ORDER BY t ;



2013-01-28 12:34:28.2514394
2013-01-28 12:34:28.2670399
2013-01-28 12:34:28.2826404
2013-01-28 12:34:28.2982409
2013-01-28 12:34:28.3138414
2013-01-28 12:34:28.3294419
2013-01-28 12:34:28.3450424
2013-01-28 12:34:28.3606429
2013-01-28 12:34:28.3762434
2013-01-28 12:34:28.3918439
2013-01-28 12:34:28.4074444
2013-01-28 12:34:28.4230449
2013-01-28 12:34:28.4386454
2013-01-28 12:34:28.4542459
2013-01-28 12:34:28.4698464

13
SYSUTCDATETIME()पूरक करने के लिए भी है GETUTCDATE()
हारून बर्ट्रेंड

1
@swasheck, अच्छा उदाहरण! यह स्पष्ट रूप से दिखाता है कि हालांकि इस फ़ंक्शन का रिज़ॉल्यूशन बेहतर प्रतीत होता है, लेकिन यह अभी भी मान लौटाता है जो लगभग 16ms अलग हैं।
रज़वान सोकोल

मैंने अनिवार्य रूप से एक ही लूप लिखा है, हालांकि मेरी मेज में 5 कॉलम हैं और मैं 100 बार लूप करता हूं। पहली 33 पंक्तियाँ बिल्कुल समान डेटाइम 2 मान को दर्शाती हैं - जिसमें सभी 7 दशमलव स्थान शामिल हैं। अगली 29 पंक्तियाँ समान डेटाइम 2 मान को एक दूसरे के समान दर्शाती हैं, और इसी तरह। क्या आप सुझाव दे सकते हैं कि ऐसा क्यों हो सकता है? मुझे कुछ समय पहले एक अलग वातावरण में याद आया कि सीखने में हालांकि उच्च परिशुद्धता समय-संबंधित डेटा प्रकार इतने सारे दशमलव स्थानों के लिए सटीक हैं, लेकिन क्वेरी चलाने वाली मशीन पर सिस्टम घड़ी जरूरी नहीं कि सिस्टम समय को हर 0.000001 सेकंड में अपडेट करें। क्या इसका कारण हो सकता है?
youcantryreachingme
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.