Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर (T-SQL) में वर्तमान सत्र में उपयोग किए जा रहे दिनांक प्रारूप को कैसे खोजें

SQL सर्वर का उपयोग करते समय, आपके वर्तमान कनेक्शन में कई विकल्प शामिल होते हैं जो भाषा, दिनांक स्वरूप आदि जैसी चीज़ों को निर्धारित करते हैं। इन्हें डिफ़ॉल्ट पर सेट किया जा सकता है, लेकिन सत्र के दौरान SET बयान।

दिनांक स्वरूप वर्ण स्ट्रिंग की व्याख्या को प्रभावित करता है क्योंकि वे डेटाबेस में संग्रहण के लिए दिनांक मानों में परिवर्तित हो जाते हैं। जब भाषा SET LANGUAGE . का उपयोग करके सेट की जाती है , दिनांक स्वरूप सेटिंग परोक्ष रूप से तदनुसार सेट किया गया है। इसे SET DATEFORMAT . के साथ स्पष्ट रूप से ओवरराइड किया जा सकता है बयान।

किसी भी स्थिति में, आप DBCC USEROPTIONS का उपयोग करके वर्तमान दिनांक स्वरूप प्राप्त कर सकते हैं आज्ञा। यह कमांड SET . लौटाता है विकल्प जो वर्तमान कनेक्शन के लिए सेट किए गए हैं।

सिंटैक्स

वाक्य रचना इस प्रकार है:

DBCC USEROPTIONS  
[ WITH NO_INFOMSGS ]

वैकल्पिक NO_INFOMSGS तर्क 0 से 10 तक गंभीरता के स्तर वाले सभी सूचनात्मक संदेशों को दबा देता है।

उदाहरण

यहाँ कमांड चलाने का एक उदाहरण है, और परिणाम जो मुझे मेरी वर्तमान परीक्षण मशीन पर मिलते हैं:

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 |
+-------------------------+----------------+

जैसा कि बताया गया है, आप इन विकल्पों को SET . से बदल सकते हैं बयान।

यहां वर्तमान सत्र की भाषा बदलने, फिर कमांड चलाने का एक उदाहरण दिया गया है:

SET LANGUAGE German;
DBCC USEROPTIONS;

परिणाम:

+-------------------------+----------------+
| Set Option              | Value          |
|-------------------------+----------------|
| textsize                | -1             |
| language                | Deutsch        |
| dateformat              | dmy            |
| datefirst               | 1              |
| 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 |
+-------------------------+----------------+
Die Spracheneinstellung wurde in Deutsch geändert.

तो हम देख सकते हैं कि न केवल भाषा बदल गई, बल्कि तारीख प्रारूप भी बदल गया।

हालांकि, यदि यह वांछित दिनांक प्रारूप नहीं है, तो दिनांक प्रारूप को SET DATEFORMAT का उपयोग करके स्पष्ट रूप से बदला जा सकता है ।

इस तरह:

SET DATEFORMAT mdy;
DBCC USEROPTIONS;

परिणाम:

+-------------------------+----------------+
| Set Option              | Value          |
|-------------------------+----------------|
| textsize                | -1             |
| language                | Deutsch        |
| dateformat              | mdy            |
| datefirst               | 1              |
| 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 |
+-------------------------+----------------+

और हम देख सकते हैं कि भाषा को जस का तस छोड़ते हुए दिनांक स्वरूप को निर्दिष्ट के अनुसार बदल दिया गया है।

sys.dm_exec_requests देखें

आप sys.dm_exec_requests को क्वेरी करके वर्तमान अनुरोध में उपयोग किए जा रहे दिनांक प्रारूप को भी वापस कर सकते हैं सिस्टम दृश्य। यह दृश्य स्तंभों का एक अच्छा बड़ा समूह देता है, लेकिन आप इसे केवल उन स्तंभों तक सीमित कर सकते हैं जिनमें आप रुचि रखते हैं। हमारे मामले में, हम केवल एक कॉलम में रुचि रखते हैं - date_format कॉलम:

SELECT r.date_format
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;

परिणाम:

+---------------+
| date_format   |
|---------------|
| mdy           |
+---------------+

मैंने क्वेरी को केवल वर्तमान अनुरोध तक सीमित कर दिया। मैंने @@SPID . का उपयोग करके ऐसा किया है , जो वर्तमान उपयोगकर्ता प्रक्रिया का सत्र आईडी लौटाता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर 2008 में एक प्रतीक से पहले एक स्ट्रिंग में एक उप-स्ट्रिंग को अलग करना

  2. java.sql.SQLException:jdbc के लिए कोई उपयुक्त ड्राइवर नहीं मिला:Microsoft:sqlserver

  3. SQL सर्वर ट्रिगर:DML ट्रिगर

  4. तालिका के लिए पंक्ति का आकार निर्धारित करें

  5. तालिका नाम और तालिका के स्कीमा के साथ SQL सर्वर डेटाबेस में सभी ट्रिगर्स को सूचीबद्ध करने की आवश्यकता है