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

SQL सर्वर में FORMAT () का उपयोग करते समय अपरिवर्तनीय संस्कृति को कैसे निर्दिष्ट करें

SQL सर्वर में, आप FORMAT() . का उपयोग कर सकते हैं तार के रूप में दिनांक/समय और संख्या मानों को प्रारूपित करने के लिए कार्य। विशेष रूप से, फ़ंक्शन "लोकेल-अवेयर" स्वरूपण प्रदान करता है, और फ़ंक्शन एक "संस्कृति" तर्क को स्वीकार करता है, जो आपको वास्तविक प्रारूप के लिए उपयोग करने के लिए एक संस्कृति या भाषा निर्दिष्ट करने की अनुमति देता है। उदाहरण के लिए, आप en-us . पास कर सकते हैं यह सुनिश्चित करने के लिए कि परिणाम यूएस अंग्रेजी प्रारूप में स्वरूपित हैं।

संस्कृति तर्क वैकल्पिक है, इसलिए यदि आप इसे प्रदान नहीं करते हैं, तो आउटपुट वर्तमान सत्र की भाषा द्वारा निर्धारित किया जाएगा।

FORMAT() फ़ंक्शन .NET फ्रेमवर्क द्वारा समर्थित किसी भी संस्कृति को एक तर्क के रूप में स्वीकार करता है (आप SQL सर्वर द्वारा स्पष्ट रूप से समर्थित भाषाओं तक सीमित नहीं हैं)।

.NET फ्रेमवर्क द्वारा समर्थित संस्कृतियों में से एक अपरिवर्तनीय संस्कृति है। अपरिवर्तनीय संस्कृति संस्कृति-असंवेदनशील है। अधिक विशेष रूप से, यह संस्कृति अंग्रेजी भाषा से जुड़ी है, लेकिन किसी देश/क्षेत्र से नहीं।

यह निर्दिष्ट करने के लिए कि FORMAT() अपरिवर्तनीय संस्कृति का उपयोग करके परिणामों को आउटपुट करना चाहिए, बस "iv" . का उपयोग करें संस्कृति तर्क के लिए (तीसरा तर्क)।

उदाहरण 1 - मुद्रा

अपरिवर्तनीय संस्कृति का उपयोग करके किसी मान को मुद्रा के रूप में स्वरूपित करने का एक उदाहरण यहां दिया गया है।

SELECT FORMAT(123, 'C', 'iv') Result;

परिणाम:

+----------+
| Result   |
|----------|
| ¤123.00  |
+----------+

इसके परिणामस्वरूप आउटपुट में दशमलव स्थान के साथ एक भिन्नात्मक भाग होता है। यह मुद्रा चिह्न (¤) के साथ भी जुड़ा हुआ है, जिसका उपयोग अनिर्दिष्ट मुद्रा को दर्शाने के लिए किया जाता है (यह यूनिकोड वर्ण U+00A4 है)।

उदाहरण 2 - दिनांक

यहां एक लघु तिथि प्रारूप के साथ अपरिवर्तनीय संस्कृति का उपयोग करके किसी तिथि को स्वरूपित करने का एक उदाहरण दिया गया है।

DECLARE @date date = '2030-05-25';
SELECT FORMAT(@date, 'd', 'iv') Result;

परिणाम:

+------------+
| Result     |
|------------|
| 05/25/2030 |
+------------+

अपरिवर्तनीय संस्कृति के लिए संक्षिप्त दिनांक प्रारूप MM/dd/yyyy है।

यहाँ यह फिर से है, लेकिन इस बार मैं इसकी तुलना अमेरिकी अंग्रेजी, ब्रिटिश और जर्मन (ड्यूश) संस्कृतियों से करता हूँ।

DECLARE @date date = '2030-05-25';
SELECT 
  FORMAT(@date, 'd', 'iv') 'Invariant Culture',
  FORMAT(@date, 'd', 'en-us') 'US English',
  FORMAT(@date, 'd', 'en-gb') 'British',
  FORMAT(@date, 'd', 'de-de') 'German (Deutsch)';

परिणाम:

+---------------------+--------------+------------+--------------------+
| Invariant Culture   | US English   | British    | German (Deutsch)   |
|---------------------+--------------+------------+--------------------|
| 05/25/2030          | 5/25/2030    | 25/05/2030 | 25.05.2030         |
+---------------------+--------------+------------+--------------------+

उदाहरण 3 - सभी मानक दिनांक और समय प्रारूप

अपरिवर्तनीय संस्कृति का उपयोग करने वाला एक और यहां है, लेकिन इस बार मैं एक डेटाटाइमऑफ़सेट प्रारूपित करता हूं .NET Framework द्वारा समर्थित सभी मानक दिनांक और समय प्रारूप स्ट्रिंग्स का उपयोग करके मान।

DECLARE @date datetimeoffset, @culture char(2); 
SET @date = '2030-05-25 23:59:30.1234567 +07:00';
SET @culture = 'iv';
SELECT 
  FORMAT(@date, 'd', @culture) AS 'd',
  FORMAT(@date, 'D', @culture) AS 'D',
  FORMAT(@date, 'f', @culture) AS 'f',
  FORMAT(@date, 'F', @culture) AS 'F',
  FORMAT(@date, 'g', @culture) AS 'g',
  FORMAT(@date, 'G', @culture) AS 'G',
  FORMAT(@date, 'm', @culture) AS 'm',
  FORMAT(@date, 'M', @culture) AS 'M',
  FORMAT(@date, 'o', @culture) AS 'o',
  FORMAT(@date, 'O', @culture) AS 'O',
  FORMAT(@date, 'r', @culture) AS 'r',
  FORMAT(@date, 'R', @culture) AS 'R',
  FORMAT(@date, 's', @culture) AS 's',
  FORMAT(@date, 't', @culture) AS 't',
  FORMAT(@date, 'T', @culture) AS 'T',
  FORMAT(@date, 'u', @culture) AS 'u',
  FORMAT(@date, 'U', @culture) AS 'U',
  FORMAT(@date, 'y', @culture) AS 'y',
  FORMAT(@date, 'Y', @culture) AS 'Y';

परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):

d | 05/25/2030
D | Saturday, 25 May 2030
f | Saturday, 25 May 2030 23:59
F | Saturday, 25 May 2030 23:59:30
g | 05/25/2030 23:59
G | 05/25/2030 23:59:30
m | May 25
M | May 25
o | 2030-05-25T23:59:30.1234567+07:00
O | 2030-05-25T23:59:30.1234567+07:00
r | Sat, 25 May 2030 16:59:30 GMT
R | Sat, 25 May 2030 16:59:30 GMT
s | 2030-05-25T23:59:30
t | 23:59
T | 23:59:30
u | 2030-05-25 16:59:30Z
U | NULL
y | 2030 May
Y | 2030 May

अपरिवर्तनीय संस्कृति आपके सिस्टम पर काम नहीं करती है?

यदि आप अपने सिस्टम पर अपरिवर्तनीय संस्कृति को काम करने में असमर्थ हैं, तो यह .NET फ्रेमवर्क के पुराने संस्करण के स्थापित होने के कारण हो सकता है। .NET Framework 4.8 के लिए प्रलेखन स्पष्ट रूप से बताता है कि अपरिवर्तनीय संस्कृति इसके ISO 639-1 दो-अक्षर कोड "iv" का उपयोग करके उपलब्ध है। ।

हालाँकि, इस स्टैक ओवरफ़्लो प्रश्न पर, सोलोमन रुत्ज़की के उत्तर से पता चलता है कि यह केवल .NET 4.5 से उपलब्ध हो सकता है।

यदि आप .NET के पुराने संस्करण का उपयोग करके इसे काम नहीं कर पा रहे हैं, तो नवीनतम संस्करण (या कम से कम 4.5 से एक संस्करण) में अपग्रेड करने का प्रयास करें।


  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 सर्वर डेटाबेस में पुनर्प्राप्ति लंबित स्थिति को कैसे ठीक करें?

  2. SQL सर्वर में एक वृद्धिशील GUID बनाने के लिए NEWSEQUENTIALID() का उपयोग करें

  3. पहले ईएफ कोड में परिकलित कॉलम

  4. NHibernate और SqlServer में डेटा ऑडिटिंग

  5. SCOPE_IDENTITY () का चयन पूर्णांक के बजाय दशमलव क्यों करता है?