जवाबों:
वहाँ कोई वास्तविक अंतर नहीं है, लेकिन जब आप DATETIME2मूल्यों का उपयोग करना शुरू करते हैं, या DATETIME2मान लौटाने वाले कार्य करते हैं , तो आपको त्रुटियां मिलेंगी।
SELECT SYSDATETIME() - 1 AS [Incompatible]
Msg 206, लेवल 16, स्टेट 2, लाइन 17 ऑपरेंड टाइप क्लैश: डेटाइम 2 इंट के साथ असंगत है
इनके लिए, आपको गणित कार्यों का उपयोग करना होगा।
SELECT DATEADD(DAY, -1, SYSDATETIME()) AS [Compatible]
हारून बर्ट्रेंड इस मुद्दे के बारे में अपनी बुरी आदतों में किक श्रृंखला के लिए संक्षिप्त रूप से बोलते हैं ।
अन्य उत्तरों में से एक में दावों के विपरीत, दोनों विकल्प आधिकारिक तौर पर SQL सर्वर द्वारा समर्थित और प्रलेखित हैं : datetime - numberयह अपरिभाषित व्यवहार नहीं है।
का बड़ा फायदा
DATEADD(d, -2, GETUTCDATE())
तथ्य यह है कि यह स्व-दस्तावेजीकरण है : यह उद्देश्य तुरंत स्पष्ट है।
GETUTCDATE() - 2दूसरी ओर, datetime - numberऑपरेशन की परिभाषा जानने वाले पाठक पर निर्भर करता है । हां, यह वर्तमान में मुहावरेदार टी-एसक्यूएल हो सकता है, लेकिन यह तथ्य कि अब इसका datetime2तात्पर्य यह नहीं है कि एसक्यूएल सर्वर डेवलपर्स की भावी पीढ़ियां अब इससे परिचित नहीं हो सकती हैं।
dateथा) को जोड़ा गया था। यह थोड़ा गड़बड़ है।