जब आप SQL सर्वर से कनेक्ट होते हैं, तो आमतौर पर दिनांक स्वरूप आपकी भाषा द्वारा निर्धारित किया जाता है। किसी सत्र के लिए डिफ़ॉल्ट भाषा उस सत्र के लॉगिन के लिए भाषा है, जब तक कि ओपन डेटाबेस कनेक्टिविटी (ओडीबीसी) या ओएलई डीबी एपीआई का उपयोग करके प्रति-सत्र आधार पर ओवरराइड नहीं किया जाता है।
दिनांक स्वरूप सेटिंग वर्ण स्ट्रिंग की व्याख्या को प्रभावित करती है क्योंकि वे डेटाबेस में संग्रहण के लिए दिनांक मानों में परिवर्तित हो जाते हैं। यह दिनांक डेटा प्रकार मानों के प्रदर्शन को प्रभावित नहीं करता है जो डेटाबेस या भंडारण प्रारूप में संग्रहीत होते हैं।
इस तथ्य के बावजूद कि आपके सत्र की भाषा दिनांक स्वरूप निर्धारित करती है, यदि आवश्यक हो तो आप दिनांक प्रारूप को ओवरराइड कर सकते हैं। उदाहरण के लिए, यदि आपकी भाषा us_english
है , दिनांक प्रारूप mdy
होगा (ताकि 07/01/2018 1 जुलाई का प्रतिनिधित्व करता है और 7 जनवरी को नहीं)। आप इसे बदल सकते हैं ताकि दिनांक प्रारूप dmy
. हो (या कोई अन्य प्रारूप) जबकि भाषा बनी रहती है us_english
।
आप SET DATEFORMAT
का उपयोग करके वर्तमान सत्र के दिनांक स्वरूप को स्पष्ट रूप से सेट करने के लिए T-SQL का उपयोग कर सकते हैं बयान।
सिंटैक्स
यहां बताया गया है कि सिंटैक्स कैसे जाता है:
SET DATEFORMAT { format | @format_var }
जहां format | @format_var
दिनांक भागों का क्रम है।
मान्य मान हैं mdy
, dmy
, ymd
, ydm
, myd
, और dym
. ये या तो यूनिकोड या डबल-बाइट कैरेक्टर सेट (DBCS) हो सकते हैं जिन्हें यूनिकोड में बदला जा सकता है।
हालांकि, ध्यान दें कि ydm
तारीख . के लिए समर्थित नहीं है , डेटाटाइम2 और डेटाटाइमऑफ़सेट डेटा प्रकार।
उदाहरण
इससे पहले कि हम कुछ भी बदलें, आइए वर्तमान उपयोगकर्ता विकल्पों को देखें। यह हमें बताएगा कि वर्तमान भाषा क्या है और तिथि प्रारूप (साथ ही कुछ अन्य चीजें):
DBCC USEROPTIONS;
परिणाम:
+-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | us_english | | dateformat | mdy | | datefirst | 7 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+
हम देख सकते हैं कि भाषा us_english
है और दिनांक प्रारूप mdy
. है (जो उस भाषा के लिए डिफ़ॉल्ट दिनांक स्वरूप है)।
तो चलिए दिनांक स्वरूप बदलते हैं, फिर उपयोगकर्ता विकल्पों की फिर से जाँच करें:
SET DATEFORMAT dmy; DBCC USEROPTIONS;
परिणाम:
+-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | us_english | | dateformat | dmy | | datefirst | 7 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+
और हम देख सकते हैं कि दिनांक स्वरूप बदल गया है, जबकि भाषा वही रहती है।
तो यह है कि भाषा को बदले बिना दिनांक प्रारूप को कैसे बदला जाए। जैसा कि उल्लेख किया गया है, यदि आप भाषा बदलते हैं, तो यह निश्चित रूप से उसी समय दिनांक स्वरूप निर्धारित करेगा। यदि आप यही करना चाहते हैं, तो देखें कि SQL सर्वर (T-SQL) में वर्तमान भाषा कैसे सेट करें।