ऐसा मत करो! तिथियों के बजाय स्ट्रिंग्स का उपयोग न करें और संस्कृति-विशिष्ट दिनांक या डेटाटाइम प्रारूप का उपयोग न करें, यह आपदा के लिए एक नुस्खा है।
SQL सर्वर में "दिनांक प्रारूप" नहीं होता है, केवल प्रारूपों को तारों से और तारीखों को परिवर्तित करने के लिए उपयोग किया जाता है। उनमें से एक डिफ़ॉल्ट है, जिसे सर्वर के संयोजन द्वारा नियंत्रित किया जाता है। आप न तो मान सकते हैं और न ही आपको किसी विशिष्ट संयोजन पर निर्भर रहना चाहिए, इसलिए जब भी संभव हो आपको रूपांतरणों से बचना चाहिए। इसके अलावा, एक स्ट्रिंग मान पास करने से SQL सर्वर को दिनांक स्तंभों पर अनुक्रमणिका का उपयोग करने से रोका जा सकता है क्योंकि इसे स्ट्रिंग को अंतर्निहित स्तंभ प्रकार में बदलना होगा।
दिनांक-टाइप किए गए चर या पैरामीटर के रूप में तिथियों को पारित करना कहीं अधिक आसान और सुरक्षित है। आप इस तरह से पूरी रूपांतरण गड़बड़ी से बचते हैं और SQL इंजेक्शन हमलों से बचते हैं।
सर्वर पर तारीखों के बजाय तार पास करने का कोई कारण नहीं है। सभी SQL सर्वर क्लाइंट (ADO.NET सहित) आपको पैरामीटरयुक्त क्वेरी निष्पादित करने की अनुमति देते हैं। NHibernate और Entity Framework जैसे ORM भी दिनांक-टाइप किए गए कॉलम के लिए पैरामीटरयुक्त क्वेरी उत्पन्न करते हैं।
जब भी आपको एक स्ट्रिंग शाब्दिक बनाने की आवश्यकता हो, तो 20140913
. जैसे अपरिवर्तनीय स्वरूपों में से किसी एक का उपयोग करें या 2012-11-07T18:26:20
आप इसके बारे में इंटरनेशनल टी-एसक्यूएल स्टेटमेंट लिखना पर पढ़ सकते हैं।