समस्या:
आप T-SQL में वर्तमान दिनांक और समय प्राप्त करना चाहते हैं, लेकिन आप समय क्षेत्र ऑफ़सेट नहीं चाहते हैं।
समाधान:
हम समय क्षेत्र ऑफसेट के बिना वर्तमान दिनांक और समय प्राप्त करने के लिए GETDATE (), CURRENT_TIMESTAMP, और SYSDATETIME() का उपयोग करेंगे। पहले दो कार्य हमें कम सटीकता के साथ वर्तमान समय प्राप्त करने की अनुमति देते हैं। (GETDATE() एक T-SQL फ़ंक्शन है, जबकि CURRENT_TIMESTAMP एक SQL मानक फ़ंक्शन है; दोनों फ़ंक्शन समान डेटा प्रकार लौटाते हैं)। तीसरा फ़ंक्शन, SYSDATETIME(), एक उच्च-सटीक समय प्राप्त करता है।
SELECT CURRENT_TIMESTAMP ;
ये रहा क्वेरी का नतीजा:
2019-08-14 10:01:06.983
चर्चा:
SQL सर्वर डेटाबेस में, CURRENT_TIMESTAMP फ़ंक्शन वर्तमान दिनांक और समय (यानी मशीन पर वह समय जहां SQL सर्वर इंस्टेंस चलता है) को datetime के रूप में लौटाता है डेटा प्रकार। Datetime एक कम-सटीक समय है जिसमें अधिकतम तीन भिन्नात्मक सेकंड होते हैं। (हमारे उदाहरण में, यह 983 है।)
GETDATE() CURRENT_TIMESTAMP के समान है और वही परिणाम देता है। अंतर यह है कि CURRENT_TIMESTAMP SQL मानक है, जबकि GETDATE() SQL सर्वर के लिए विशिष्ट है।
SELECT GETDATE() ;
बेशक, यदि आप समय क्षेत्र ऑफसेट के बिना उच्च-सटीक वर्तमान दिनांक और समय प्राप्त करना चाहते हैं, तो आप SYSDATETIME() फ़ंक्शन का उपयोग कर सकते हैं। यह फ़ंक्शन datetime2 देता है सात भिन्नात्मक सेकंड के साथ डेटा प्रकार। नीचे दिए गए उदाहरण को देखें:
SELECT SYSDATETIME() ;
ये रहा परिणाम:
2019-08-14 10:01:06.9754163