जवाबों:
CONVERT
SQL सर्वर विशिष्ट है, CAST
ANSI है।
CONVERT
इसमें और अधिक लचीला है कि आप दिनांक आदि को प्रारूपित कर सकते हैं। इसके अलावा, वे बहुत अधिक समान हैं। यदि आप विस्तारित सुविधाओं के बारे में परवाह नहीं करते हैं, तो उपयोग करें CAST
।
संपादित करें:
जैसा कि नीचे टिप्पणी में @beruic और @CF द्वारा उल्लेख किया गया है, एक अंतर्निहित रूपांतरण का उपयोग किए जाने पर परिशुद्धता का संभावित नुकसान होता है (यह वह जगह है जहां आप न तो कास्ट और न ही कंवर्ट का उपयोग करते हैं)। अधिक जानकारी के लिए, CAST और CONVERT और विशेष रूप से इस ग्राफ़िक को देखें: SQL सर्वर डेटा प्रकार रूपांतरण चार्ट । इस अतिरिक्त जानकारी के साथ, मूल सलाह अभी भी वही है। जहाँ संभव हो CAST का प्रयोग करें।
कन्वर्ट में स्ट्रिंग रूपांतरणों के लिए एक शैली पैरामीटर है।
CAST मानक SQL है, लेकिन CONVERT केवल बोली T-SQL के लिए है। डेटाइम के मामले में कन्वर्ट करने के लिए हमारे पास एक छोटा सा फायदा है।
CAST के साथ, आप अभिव्यक्ति और लक्ष्य प्रकार को इंगित करते हैं; CONVERT के साथ, रूपांतरण के लिए शैली का प्रतिनिधित्व करने वाला एक तीसरा तर्क है, जो कुछ रूपांतरणों के लिए समर्थित है, जैसे चरित्र तार और दिनांक और समय मान। उदाहरण के लिए, CONVERT (DATE, '1/2/2012', 101) शाब्दिक चरित्र स्ट्रिंग को DATE को शैली 101 का उपयोग करके संयुक्त राज्य अमेरिका के मानक का प्रतिनिधित्व करता है।
शक्ति द्वारा कॉपी किए गए उपरोक्त उत्तर पर विस्तार करने के लिए , मैं वास्तव में दो कार्यों के बीच एक प्रदर्शन अंतर को मापने में सक्षम हूं।
मैं इस प्रश्न के समाधान की विविधताओं के प्रदर्शन का परीक्षण कर रहा था और पाया कि उपयोग करते समय मानक विचलन और अधिकतम रनटाइम्स बड़े थे CAST
।
* मिलीसेकंड में टाइम्स, प्रकार की शुद्धता के अनुसार एक सेकंड के निकटतम 1/300 वें दौर तक पहुंच गयाDateTime
लगता है कि कोई भी अभी तक पठनीयता है लगता है। बीत रहा है ...
CONVERT(SomeType,
SomeReallyLongExpression
+ ThatMayEvenSpan
+ MultipleLines
)
… समझने में आसान हो सकता है…
CAST(SomeReallyLongExpression
+ ThatMayEvenSpan
+ MultipleLines
AS SomeType
)
CAST(Column1 AS int)
तुलना में CONVERT(int, Column1)
भी पढ़ने के लिए अधिक तार्किक है