SQL सर्वर में फ़ंक्शंस का एक समूह है जो वर्तमान दिनांक/समय लौटाता है। इनमें से दो हैं GETDATE()
और SYSDATETIME()
कार्य।
पहली नज़र में, ये दो कार्य एक ही काम करते प्रतीत होते हैं - उस कंप्यूटर के ऑपरेटिंग सिस्टम से वर्तमान दिनांक और समय प्राप्त करें जिस पर SQL सर्वर का इंस्टेंस चल रहा है।
हालाँकि, दोनों के बीच एक सूक्ष्म अंतर है।
अंतर? वापसी मूल्य प्रकार
GETDATE()
. के बीच मुख्य अंतर और SYSDATETIME()
वापसी मूल्य प्रकार में है।
GETDATE()
एक डेटाटाइम . देता है मूल्य।SYSDATETIME()
एक डेटाटाइम2(7) . देता है मूल्य।
इसका मतलब है कि SYSDATETIME()
GETDATE()
. की तुलना में अधिक भिन्नात्मक सेकंड सटीकता है ।
दोनों फ़ंक्शन उस कंप्यूटर के ऑपरेटिंग सिस्टम से वर्तमान दिनांक और समय प्राप्त करते हैं जिस पर SQL सर्वर का इंस्टेंस चल रहा है, लेकिन भिन्नात्मक सटीकता अलग है।
उदाहरण
प्रत्येक फ़ंक्शन के लिए लौटाए गए विभिन्न मानों को प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है:
SELECT GETDATE() AS GETDATE, SYSDATETIME() AS SYSDATETIME;
परिणाम:
+-------------------------+-----------------------------+ | GETDATE | SYSDATETIME | |-------------------------+-----------------------------| | 2018-06-13 02:48:27.653 | 2018-06-13 02:48:27.6542371 | +-------------------------+-----------------------------+
तो जैसा कि बताया गया है, SYSDATETIME()
, जो एक datetime2(7) . देता है मान, GETDATE()
. की तुलना में अधिक भिन्नात्मक सटीकता है , जो एक डेटाटाइम . देता है मूल्य।
डेटाटाइम2 डेटा प्रकार में एक बड़ी तिथि सीमा और वैकल्पिक उपयोगकर्ता-निर्दिष्ट सटीकता भी होती है।
मुझे किसका उपयोग करना चाहिए?
Microsoft अनुशंसा करता है कि हम datetime2 . का उपयोग करें हमारे दिनांक/समय मूल्यों के साथ। यह डेटा प्रकार SQL मानक के साथ संरेखित होता है, और डेटाटाइम . से अधिक पोर्टेबल है ।
इसलिए, SYSDATETIME()
का उपयोग करें जब तक आपके पास ऐसा न करने का कारण न हो।