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

SQL सर्वर (T-SQL) में TIME डेटा प्रकार को फ़ॉर्मेट करते समय इसे याद रखें

SQL सर्वर में, जब आप T-SQL का उपयोग करते हैं FORMAT() समय . को प्रारूपित करने के लिए कार्य करता है डेटा प्रकार, आपको अपनी प्रारूप स्ट्रिंग में किसी भी कोलन या अवधि से बचने के लिए याद रखना होगा।

ऐसा इसलिए है क्योंकि FORMAT() फ़ंक्शन CLR स्वरूपण नियमों पर निर्भर करता है, जो यह निर्देश देते हैं कि कोलन और अवधियों से बचना चाहिए। इसलिए, जब प्रारूप स्ट्रिंग (द्वितीय पैरामीटर) में एक कोलन या अवधि होती है, तो कोलन या अवधि को बैकस्लैश से बचाना चाहिए, जब एक इनपुट मान (पहला पैरामीटर) समय का हो। डेटा प्रकार।

उदाहरण 1 - कोलन से बचना

यहां FORMAT() . का इस्तेमाल करने का एक बुनियादी उदाहरण दिया गया है समय . को प्रारूपित करने के लिए कार्य करता है डेटा प्रकार।

SELECT FORMAT(CAST('11:28:15' AS time), 'hh\:mm') Result;

परिणाम:

+----------+
| Result   |
|----------|
| 11:28    |
+----------+

बैकस्लैश को प्रारूप स्ट्रिंग में नोट करें।

उदाहरण 2 - एक अवधि से बचना

यदि हम इसे एक अवधि के साथ प्रारूपित करना चाहते हैं तो यही बात लागू होती है:

SELECT FORMAT(CAST('11:28:15' AS time), 'hh\.mm') Result;

परिणाम:

+----------+
| Result   |
|----------|
| 11.28    |
+----------+

उदाहरण 3 - न छूटा

यहां बताया गया है कि अगर हम कोलन या पीरियड से नहीं बचते हैं तो क्या होता है।

SELECT 
  FORMAT(CAST('11:28:15' AS time), 'hh:mm') 'Unescaped Colon',
  FORMAT(CAST('11:28:15' AS time), 'hh.mm') 'Unescaped Period';

परिणाम:

+-------------------+--------------------+
| Unescaped Colon   | Unescaped Period   |
|-------------------+--------------------|
| NULL              | NULL               |
+-------------------+--------------------+

हमें NULL मिलता है दोनों ही मामलों में।

उदाहरण 4 - दिनांक समय (बचने की कोई आवश्यकता नहीं)

यदि इनपुट मान डेटा प्रकार समय . का है, तो आपको केवल कोलन और अवधि से बचने की आवश्यकता है . अगर यह डेटाटाइम है (या डेटाटाइम2 आदि), आपको उनसे बचने की आवश्यकता नहीं है।

यदि मैं पिछले उदाहरण का उपयोग करता हूं, लेकिन इनपुट मानों को datetime2 . पर स्विच करता हूं , हम कुछ भी बचने की आवश्यकता के बिना वांछित परिणाम प्राप्त करते हैं:

SELECT 
  FORMAT(CAST('11:28:15' AS datetime2), 'hh:mm') 'Unescaped Colon',
  FORMAT(CAST('11:28:15' AS datetime2), 'hh.mm') 'Unescaped Period';

परिणाम:

+-------------------+--------------------+
| Unescaped Colon   | Unescaped Period   |
|-------------------+--------------------|
| 11:28             | 11.28              |
+-------------------+--------------------+

वही sysdatetime . पर लागू होता है :

SELECT 
  FORMAT(SYSDATETIME(), 'hh:mm') 'Unescaped Colon',
  FORMAT(SYSDATETIME(), 'hh.mm') 'Unescaped Period';

परिणाम:

+-------------------+--------------------+
| Unescaped Colon   | Unescaped Period   |
|-------------------+--------------------|
| 04:46             | 04.46              |
+-------------------+--------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. शीर्ष 3 कारण लोग सास की ओर बढ़ रहे हैं

  2. सी # कोड से एमएसएसक्यूएल सर्वर पर एसक्यूएल इंजेक्शन से बचने के लिए एल्गोरिदम?

  3. SQL में माह संख्या को माह नाम फ़ंक्शन में कनवर्ट करें

  4. Sql सर्वर - विंडोज़ प्रमाणीकरण से कनेक्ट करें

  5. SQL सर्वर आंतरिक:योजना कैशिंग पीटी। II - पुन:संकलन योजनाएं