निम्नलिखित घटकों को दिया
DECLARE @D DATE = '2013-10-13'
DECLARE @T TIME(7) = '23:59:59.9999999'
DATETIME2(7)
मूल्य के साथ परिणाम उत्पन्न करने के लिए उन्हें संयोजित करने का सबसे अच्छा तरीका क्या है '2013-10-13 23:59:59.9999999'
?
कुछ चीजें जो काम नहीं करती हैं उन्हें नीचे सूचीबद्ध किया गया है।
SELECT @D + @T
ऑपरेटर ऑपरेटर के लिए ऑपरेटर डेटा प्रकार की तारीख अमान्य है।
SELECT CAST(@D AS DATETIME2(7)) + @T
ऑपरेटर ऑपरेटर टाइप डेटाटाइम 2 एड ऑपरेटर के लिए अमान्य है।
SELECT DATEADD(NANOSECOND,DATEDIFF(NANOSECOND,CAST('00:00:00.0000000' AS TIME),@T),@D)
दिनांकित फ़ंक्शन के परिणामस्वरूप अतिप्रवाह हुआ। दो दिनांक / समय के उदाहरणों को अलग करने वाले दिनांक की संख्या बहुत बड़ी है। एक कम सटीक दिनांक के साथ डेटेडिफ का उपयोग करने का प्रयास करें।
* एज़्योर SQL डेटाबेस और SQL सर्वर 2016 में अतिप्रवाह से बचा जा सकता है DATEDIFF_BIG
।
SELECT CAST(@D AS DATETIME) + @T
डेटा प्रकार डेटाटाइम और समय एड ऑपरेटर में असंगत हैं।
SELECT CAST(@D AS DATETIME) + CAST(@T AS DATETIME)
एक परिणाम देता है, लेकिन सटीक खो देता है
2013-10-13 23:59:59.997