SQL सर्वर DateTime
स्टोर नहीं करता है किसी भी स्ट्रिंग प्रारूप में - इसे 8 बाइट संख्यात्मक मान के रूप में संग्रहीत किया जाता है।
विभिन्न सेटिंग्स (भाषा, दिनांक स्वरूप) केवल DateTime
. को प्रभावित करती हैं SQL सर्वर प्रबंधन स्टूडियो में आपको दिखाया जाता है - या जब आप किसी स्ट्रिंग को DateTime
में बदलने का प्रयास करते हैं तो इसे कैसे पार्स किया जाता है .
SQL सर्वर द्वारा समर्थित कई प्रारूप हैं - CAST पर MSDN पुस्तकें ऑनलाइन देखें। कनवर्ट करें . उनमें से अधिकतर प्रारूप आश्रित हैं आपके पास कौन सी सेटिंग्स हैं - इसलिए, ये सेटिंग्स कुछ समय काम कर सकती हैं - और कभी-कभी नहीं।
इसे हल करने का तरीका ISO-8601 दिनांक प्रारूप . का उपयोग करना है जो SQL सर्वर द्वारा समर्थित है - यह प्रारूप हमेशा काम करता है - आपकी SQL सर्वर भाषा और दिनांक स्वरूप सेटिंग्स पर ध्यान दिए बिना।
ISO-8601 प्रारूप SQL सर्वर द्वारा समर्थित दो फ्लेवर में आता है:
YYYYMMDD
केवल तिथियों के लिए (कोई समय भाग नहीं) - यहां ध्यान दें:कोई डैश नहीं! , यह बहुत महत्वपूर्ण है!YYYY-MM-DD
है नहीं आपके SQL सर्वर में दिनांक स्वरूप सेटिंग्स से स्वतंत्र और नहीं सभी स्थितियों में काम करें!
या:
YYYY-MM-DDTHH:MM:SS
दिनांक और समय के लिए - यहां नोट करें:इस प्रारूप में है डैश.
यह SQL Server 2000 और नए के लिए मान्य है।
यदि आप SQL Server 2008 और DATE
का उपयोग करते हैं डेटाटाइप (केवल DATE
- नहीं DATETIME
!), तो आप वास्तव में YYYY-MM-DD
. का भी उपयोग कर सकते हैं स्वरूप और वह भी, आपके SQL सर्वर में किसी भी सेटिंग के साथ काम करेगा।
मुझसे मत पूछो कि यह पूरा विषय इतना पेचीदा और थोड़ा भ्रमित करने वाला क्यों है - बस यही तरीका है। लेकिन YYYYMMDD
. के साथ प्रारूप, आपको SQL सर्वर के किसी भी संस्करण के लिए और अपने SQL सर्वर में किसी भी भाषा और दिनांक स्वरूप सेटिंग के लिए ठीक होना चाहिए।