SQL सर्वर में, FORMAT()
फ़ंक्शन आपको दूसरे तर्क के रूप में "प्रारूप स्ट्रिंग" में पास करके स्वरूपित स्ट्रिंग के रूप में दिनांक/समय और संख्या मानों को प्रारूपित करने में सक्षम बनाता है (पहला तर्क वह मान है जिसे स्वरूपित किया जा रहा है)।
यहां इस कार्य का एक उदाहरण दिया गया है:
FORMAT(@date, 'dd/MM/yyyy');
इस मामले में प्रारूप स्ट्रिंग dd/MM/yyyy . है .
यह विशेष प्रारूप स्ट्रिंग निर्दिष्ट करती है कि @date
मान को दो-अंकीय दिन, दो-अंकीय माह और चार-अंकीय वर्ष के साथ उसी क्रम में स्वरूपित किया जाना चाहिए, और विभाजक के रूप में फ़ॉरवर्ड स्लैश के साथ।
इसका परिणाम कुछ इस तरह होगा:
21/05/2019
एक प्रारूप स्ट्रिंग एक स्ट्रिंग है जिसमें एक या अधिक पूर्वनिर्धारित होते हैं प्रारूप विनिर्देशक , जो एकल वर्ण या वर्णों के समूह हैं जो परिभाषित करते हैं कि आउटपुट को कैसे स्वरूपित किया जाना चाहिए।
SQL सर्वर केवल प्रारूप स्ट्रिंग्स को स्वीकार करता है जो .NET Framework द्वारा समर्थित हैं।
एक प्रारूप स्ट्रिंग एक मानक प्रारूप स्ट्रिंग या एक कस्टम प्रारूप स्ट्रिंग हो सकती है। यहां बताया गया है कि वे कैसे काम करते हैं:
- एक मानक प्रारूप स्ट्रिंग एक पूर्वनिर्धारित प्रारूप स्ट्रिंग है। इसमें एक एकल प्रारूप विनिर्देशक होता है जिसे एक निश्चित, पूर्वनिर्धारित प्रारूप का प्रतिनिधित्व करने के रूप में व्याख्या किया जाता है। मानक प्रारूप तार वास्तव में कस्टम प्रारूप तारों के लिए उपनाम हैं। हालांकि, उपयोग की जाने वाली वास्तविक कस्टम प्रारूप स्ट्रिंग अक्सर संस्कृति पर निर्भर करती है।
- एक कस्टम प्रारूप स्ट्रिंग दूसरी ओर, एक या एक से अधिक कस्टम प्रारूप विनिर्देशक होते हैं, जो एक दूसरे के साथ संयोजन में प्रारूप को परिभाषित करेंगे। यह आपको आउटपुट को कैसा दिखना चाहिए, यह परिभाषित करने के साथ बहुत अधिक लचीलेपन की अनुमति देता है।
उदाहरण 1 - मानक प्रारूप स्ट्रिंग
मानक प्रारूप स्ट्रिंग कैसे काम करती है, यह दिखाने के लिए यहां एक उदाहरण दिया गया है।
SELECT FORMAT(1234, 'C') AS Result;
परिणाम:
+-----------+ | Result | |-----------| | $1,234.00 | +-----------+
इस उदाहरण में, C
प्रारूप स्ट्रिंग है। इस मामले में, यह एक मानक संख्यात्मक प्रारूप स्ट्रिंग है जिसमें एकल प्रारूप विनिर्देशक होता है। यह विशेष प्रारूप विनिर्देशक मुद्रा राशि का प्रतिनिधित्व करने के लिए उपयोग किया जाता है।
हम कस्टम संख्यात्मक प्रारूप स्ट्रिंग का उपयोग करके भी वही परिणाम प्राप्त कर सकते हैं।
उदाहरण 2 - कस्टम प्रारूप स्ट्रिंग
यह उदाहरण पिछले उदाहरण के समान आउटपुट देता है। अंतर यह है कि, इस उदाहरण में, मैं एक कस्टम . का उपयोग करता हूं मानक स्ट्रिंग के बजाय प्रारूप स्ट्रिंग।
SELECT FORMAT(1234, '$#,###.00') AS Result;
परिणाम:
+-----------+ | Result | |-----------| | $1,234.00 | +-----------+
एक कस्टम प्रारूप स्ट्रिंग आपको अपना स्वयं का कस्टम प्रारूप बनाने की अनुमति देता है। आप अपना स्वयं का कस्टम प्रारूप बनाने के लिए स्ट्रिंग्स को प्रारूप विनिर्देशकों के साथ जोड़ सकते हैं।
इस उदाहरण में, मैं #
. का उपयोग करता हूं प्रारूप विनिर्देशक, जो एक अंक के लिए प्लेसहोल्डर है। यदि कोई अंक मौजूद नहीं है, तो परिणामी स्ट्रिंग में कोई अंक दिखाई नहीं देता है।
मैं 0
. का भी उपयोग करता हूं प्रारूप विनिर्देशक, जो किसी भी अंक के लिए प्लेसहोल्डर भी है। लेकिन इस मामले में, यदि कोई अंक मौजूद नहीं है, तो इसके बजाय एक शून्य का उपयोग किया जाता है।
मैं $
. भी शामिल करता हूं , ,
, और .
प्रारूप स्ट्रिंग में शाब्दिक तार। ये आउटपुट में ठीक वैसे ही शामिल होते हैं जैसे वे हैं।
यदि हम इनपुट संख्या को कम करते हैं, तो हम देख सकते हैं कि परिणाम 0
. के बीच कैसे भिन्न है और #
प्रारूप विनिर्देशक, और वे C
. से तुलना कैसे करते हैं पिछले उदाहरण से मानक प्रारूप विनिर्देशक:
SELECT FORMAT(34, 'C') AS 'C', FORMAT(34, '$0,000.00') AS '0', FORMAT(34, '$#,###.00') AS '#';
परिणाम:
+--------+-----------+--------+ | C | 0 | # | |--------+-----------+--------| | $34.00 | $0,034.00 | $34.00 | +--------+-----------+--------+
जैसा कि आप कल्पना कर सकते हैं, कस्टम प्रारूप तार मानक प्रारूप स्ट्रिंग पर बहुत अधिक लचीलापन प्रदान करते हैं।
हालांकि, ऐसे कई परिदृश्य हैं जहां मानक प्रारूप तार अधिक शक्तिशाली हो सकते हैं, खासकर जब यह गतिशील परिणाम उत्पन्न करने की बात आती है जो संस्कृति को ध्यान में रखते हैं। संस्कृति पर और जल्द ही।
उदाहरण 3 - स्वरूपण दिनांक और समय
दिनांक/समय मान मानक या कस्टम प्रारूप स्ट्रिंग का विकल्प भी प्रदान करते हैं। यहां एक मानक प्रारूप स्ट्रिंग के साथ-साथ कुछ कस्टम प्रारूप स्ट्रिंग के साथ स्वरूपित दिनांक/समय मान का एक उदाहरण दिया गया है।
DECLARE @date datetime2(7); SET @date = '2080-05-01 23:09:08.1234567'; SELECT FORMAT(@date, 'd') AS 'd', FORMAT(@date, 'M/d/yyyy') AS 'M/d/yyyy', FORMAT(@date, 'dd/MM/yy') AS 'dd/MM/yy', FORMAT(@date, 'ddd, MMM dd, yy') AS 'ddd, MMM dd, yy', FORMAT(@date, 'dddd, dd MMMM yyyy') AS 'dddd, dd MMMM yyyy';
परिणाम:
+----------+------------+------------+-------------------+------------------------+ | d | M/d/yyyy | dd/MM/yy | ddd, MMM dd, yy | dddd, dd MMMM yyyy | |----------+------------+------------+-------------------+------------------------| | 5/1/2080 | 5/1/2080 | 01/05/80 | Wed, May 01, 80 | Wednesday, 01 May 2080 | +----------+------------+------------+-------------------+------------------------+
पहला एक मानक प्रारूप स्ट्रिंग का उपयोग करता है, और अन्य चार कस्टम प्रारूप स्ट्रिंग का उपयोग करते हैं।
उपलब्ध दिनांक और समय प्रारूप स्ट्रिंग की पूरी सूची के लिए, निम्नलिखित देखें:
- मानक दिनांक/समय प्रारूप स्ट्रिंग की सूची
- कस्टम दिनांक/समय प्रारूप स्ट्रिंग की सूची
उदाहरण 4 - संस्कृति
प्रारूप स्ट्रिंग के परिणाम कभी-कभी उपयोग की जा रही संस्कृति पर निर्भर हो सकते हैं। उदाहरण के लिए, यूएस में एक संक्षिप्त दिनांक प्रारूप को 'M/d/yyyy' के रूप में दर्शाया जाता है, लेकिन ब्रिटेन में इसे 'dd/MM/yyyy' के रूप में दर्शाया जाता है।
डिफ़ॉल्ट रूप से, वर्तमान सत्र की भाषा का उपयोग संस्कृति को परिभाषित करने के लिए किया जाता है। हालांकि, FORMAT()
फ़ंक्शन आपको इसे ओवरराइड करने की अनुमति देता है।
फ़ंक्शन का सिंटैक्स इस प्रकार है:
FORMAT ( value, format [, culture ] )
तो यह आपको एक वैकल्पिक तर्क के रूप में एक संस्कृति निर्दिष्ट करने की अनुमति देता है।
यहां एक उदाहरण दिया गया है जहां विभिन्न संस्कृतियों के परिणामस्वरूप एक ही प्रारूप स्ट्रिंग में कई अलग-अलग प्रारूप उत्पन्न हो सकते हैं।
DECLARE @date datetime2(7); SET @date = '2080-05-01 23:09:08.1234567'; SELECT FORMAT(@date, 'd', 'en-us') AS 'US English', FORMAT(@date, 'd', 'en-gb') AS 'British', FORMAT(@date, 'd', 'de-de') AS 'German', FORMAT(@date, 'd', 'jp-jp') AS 'Japanese';
परिणाम:
+--------------+------------+------------+------------+ | US English | British | German | Japanese | |--------------+------------+------------+------------| | 5/1/2080 | 01/05/2080 | 01.05.2080 | 05/01/2080 | +--------------+------------+------------+------------+
इस मामले में, सभी चार देश d
. का उपयोग करते हैं मानक दिनांक और समय प्रारूप स्ट्रिंग। हालांकि, वे सभी एक अलग संस्कृति तर्क का उपयोग करते हैं। यह प्रत्येक संस्कृति के अनुरूप एक अलग परिणाम उत्पन्न करता है।
और यह केवल मानक नहीं है प्रारूप तार जो संस्कृति से प्रभावित होते हैं। संस्कृति कस्टम . के परिणाम को भी प्रभावित कर सकती है प्रारूप तार। यहां एक उदाहरण दिया गया है:
DECLARE @date datetime2(7); SET @date = '2080-05-01 23:09:08.1234567'; SELECT FORMAT(@date, 'dddd, dd MMMM', 'en-us') AS 'US English', FORMAT(@date, 'dddd, dd MMMM', 'de-de') AS 'German', FORMAT(@date, 'dddd, dd MMMM', 'vi') AS 'Vietnamese', FORMAT(@date, 'dddd, dd MMMM', 'sv') AS 'Swedish';
परिणाम:
+-------------------+------------------+----------------------+----------------+ | US English | German | Vietnamese | Swedish | |-------------------+------------------+----------------------+----------------| | Wednesday, 01 May | Mittwoch, 01 Mai | Thứ Tư, 01 Tháng Năm | onsdag, 01 maj | +-------------------+------------------+----------------------+----------------+
आपके पास अपरिवर्तनीय संस्कृति का उपयोग करने का विकल्प भी है (iv
) अपरिवर्तनीय संस्कृति संस्कृति-असंवेदनशील है। यह अंग्रेजी भाषा से जुड़ा है लेकिन किसी देश/क्षेत्र से नहीं। अधिक जानकारी और उदाहरणों के लिए, SQL सर्वर में FORMAT() का उपयोग करते समय अपरिवर्तनीय संस्कृति को कैसे निर्दिष्ट करें देखें।