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

SQL सर्वर में दिनांक से दिन, माह और वर्ष प्राप्त करने के लिए 6 कार्य

ट्रांजैक्ट-एसक्यूएल में कार्यों का एक समूह शामिल है जो हमें तिथियों और समय के साथ काम करने में मदद करता है। तिथियों के साथ काम करते समय अधिक सामान्य कार्यों में से एक तिथि के विभिन्न भागों को निकालना है। उदाहरण के लिए, कभी-कभी हम केवल वर्ष या महीना चाहते हैं। दूसरी बार हम सप्ताह का दिन चाहते हैं। किसी भी तरह, SQL सर्वर में ऐसा करने के बहुत सारे तरीके हैं।

विशेष रूप से, निम्न फ़ंक्शन आपको SQL सर्वर में किसी दिनांक से दिन, माह और वर्ष वापस करने की अनुमति देते हैं।

  • DAY() , MONTH() , और YEAR()
  • DATEPART()
  • DATENAME()
  • FORMAT()

इन कार्यों को नीचे समझाया गया है।

दिन (), माह (), और वर्ष () कार्य

किसी तिथि से दिन, महीने और वर्ष वापस करने का सबसे स्पष्ट तरीका उसी नाम के टी-एसक्यूएल कार्यों का उपयोग करना है। हां, टी-एसक्यूएल में इन तीन डेटपार्ट्स को वापस करने के उद्देश्य से विशेष रूप से बनाए गए फ़ंक्शन हैं।

यहां एक उदाहरण दिया गया है कि वे कैसे काम करते हैं:

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
SELECT 
    DAY(@date) AS DAY,
    MONTH(@date) AS MONTH,
    YEAR(@date) AS YEAR;

परिणाम:

+-------+---------+--------+
| DAY   | MONTH   | YEAR   |
|-------+---------+--------|
| 2     | 6       | 2018   |
+-------+---------+--------+

ये फ़ंक्शन डेटपार्ट को पूर्णांक के रूप में लौटाते हैं। वे वही परिणाम लौटाते हैं जो DATEPART() निर्दिष्ट दिनांक भाग के लिए फ़ंक्शन रिटर्न।

DATEPART() फ़ंक्शन

DATEPART() फ़ंक्शन विशेष रूप से किसी दिनांक के निर्दिष्ट भागों को वापस करने के लिए बनाया गया था। इसलिए, हम पिछले उदाहरण के समान परिणाम देने के लिए इस फ़ंक्शन का उपयोग कर सकते हैं:

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
SELECT 
    DATEPART(day, @date) AS DAY,
    DATEPART(weekday, @date) AS WEEKDAY,
    DATEPART(month, @date) AS MONTH,
    DATEPART(year, @date) AS YEAR;

परिणाम:

+-------+-----------+---------+--------+
| DAY   | WEEKDAY   | MONTH   | YEAR   |
|-------+-----------+---------+--------|
| 2     | 7         | 6       | 2018   |
+-------+-----------+---------+--------+

इस फ़ंक्शन का उपयोग करने का एक लाभ यह है कि आप दिनांक और समय के अन्य भाग भी वापस कर सकते हैं। जैसा कि आप इस उदाहरण से देख सकते हैं, मैंने सप्ताह के दिन के साथ-साथ दिन (day . लौटाया है महीने का दिन है, weekday सप्ताह का दिन है)। आप विभिन्न समय भागों को भी वापस कर सकते हैं, जैसे मिनट, सेकंड, मिलीसेकंड, आदि। अधिक उदाहरणों के लिए, देखें DATEPART() SQL सर्वर में उदाहरण।

DATEPART() फ़ंक्शन अपना परिणाम एक पूर्णांक के रूप में देता है, और इसलिए, आप तिथि से महीने का नाम या कार्यदिवस का नाम प्राप्त करने में सक्षम नहीं होंगे। लेकिन चिंता न करें, आप DATENAME() . का उपयोग कर सकते हैं या FORMAT() उसके लिए कार्य करता है।

DATENAME() फ़ंक्शन

DATENAME() फ़ंक्शन DATEPART() के समान है फ़ंक्शन, सिवाय इसके कि यह एक पूर्णांक के बजाय एक वर्ण स्ट्रिंग के रूप में परिणाम देता है। DATENAME() महीने और कार्यदिवस को उनके संख्यात्मक मान के बजाय उनके पूरे नाम के रूप में लौटाता है।

उदाहरण:

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
SELECT 
    DATENAME(day, @date) AS DAY,
    DATENAME(weekday, @date) AS WEEKDAY,
    DATENAME(month, @date) AS MONTH,
    DATENAME(year, @date) AS YEAR;

परिणाम:

+-------+-----------+---------+--------+
| DAY   | WEEKDAY   | MONTH   | YEAR   |
|-------+-----------+---------+--------|
| 2     | Saturday  | June    | 2018   |
+-------+-----------+---------+--------+

इस फ़ंक्शन के अधिक उदाहरणों के लिए, देखें DATENAME() SQL सर्वर में उदाहरण।

फॉर्मेट () फंक्शन

हम FORMAT() . का उपयोग कर सकते हैं DATENAME() . के समान मान लौटाने के लिए कार्य करता है समारोह, और बहुत कुछ।

यह पिछले वाले की तुलना में अधिक बहुमुखी कार्य है। यह आपको दिनांक/समय के साथ-साथ संख्यात्मक मानों को स्ट्रिंग्स के रूप में प्रारूपित करने की अनुमति देता है। वापसी मूल्य या तो nvarchar . है या शून्य (इनपुट के आधार पर), और स्ट्रिंग की लंबाई निर्दिष्ट प्रारूप द्वारा निर्धारित की जाती है।

FORMAT() डेटपार्ट कैसे प्रस्तुत किया जाता है, इसके लिए और विकल्प भी प्रदान करता है। आप निर्दिष्ट कर सकते हैं कि कुछ मामलों में इसे एकल वर्ण, दो वर्णों, तीन, चार और पाँच के रूप में प्रदर्शित करना है या नहीं।

प्रदर्शित करने के लिए यहां उदाहरण दिए गए हैं।

दिन

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
SELECT 
    FORMAT(@date, 'd ') AS d,
    FORMAT(@date, 'dd') AS dd,
    FORMAT(@date, 'ddd') AS ddd,
    FORMAT(@date, 'dddd') AS dddd;

परिणाम:

+-----+------+-------+----------+
| d   | dd   | ddd   | dddd     |
|-----+------+-------+----------|
| 2   | 02   | Sat   | Saturday |
+-----+------+-------+----------+

माह

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
SELECT 
    FORMAT(@date, 'M ') AS M,
    FORMAT(@date, 'MM') AS MM,
    FORMAT(@date, 'MMM') AS MMM,
    FORMAT(@date, 'MMMMM') AS MMMM;

परिणाम:

+-----+------+-------+--------+
| M   | MM   | MMM   | MMMM   |
|-----+------+-------+--------|
| 6   | 06   | Jun   | June   |
+-----+------+-------+--------+

वर्ष

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
SELECT     
    FORMAT(@date, 'y ') AS y,
    FORMAT(@date, 'yy') AS yy,
    FORMAT(@date, 'yyy') AS yyy,
    FORMAT(@date, 'yyyy') AS yyyy,
    FORMAT(@date, 'yyyyy') AS yyyyy;

परिणाम:

+-----+------+-------+--------+---------+
| y   | yy   | yyy   | yyyy   | yyyyy   |
|-----+------+-------+--------+---------|
| 18  | 18   | 2018  | 2018   | 02018   |
+-----+------+-------+--------+---------+

ध्यान दें कि हमारे पास वर्ष के हिस्से को पांच अंकों के रूप में स्वरूपित करने का विकल्प है।

अंकों की संख्या के बारे में

डिजिट फॉर्म में डेटपार्ट लौटाते समय, फॉर्मेट स्पेसिफायर वापस आने के लिए अंकों की न्यूनतम संख्या निर्धारित करता है। उदाहरण के लिए,  yyy . का उपयोग करते समय , यदि वर्ष 0008 . है, तो वर्ष तीन अंकों के रूप में वापस आ जाएगा लेकिन चार अंकों के रूप में यदि वर्ष है 2008

उदाहरण:

DECLARE @date datetime2 = '0008-06-02 08:24:14.3112042';
SELECT     
    FORMAT(@date, 'y ') AS y,
    FORMAT(@date, 'yy') AS yy,
    FORMAT(@date, 'yyy') AS yyy,
    FORMAT(@date, 'yyyy') AS yyyy,
    FORMAT(@date, 'yyyyy') AS yyyyy;  

परिणाम:

+-----+------+-------+--------+---------+
| y   | yy   | yyy   | yyyy   | yyyyy   |
|-----+------+-------+--------+---------|
| 8   | 08   | 008   | 0008   | 00008   |
+-----+------+-------+--------+---------+

साथ ही, एकल विकल्प का उपयोग करते समय (उदा. d ) दिनांक निर्दिष्टकर्ता के रूप में, आपको एक स्थान जोड़ने की आवश्यकता होगी यदि आप केवल उस दिनांक भाग को अपने आप वापस करना चाहते हैं। अगर आप ऐसा नहीं करते हैं, तो आपको उस एक से अधिक डेटपार्ट मिलेंगे।

उदाहरण:

DECLARE @date datetime2 = '2008-06-02 08:24:14.3112042';
SELECT 
    FORMAT(@date, 'd ') AS 'Space',
    FORMAT(@date, 'd') AS 'No Space',
    FORMAT(@date, 'M ') AS 'Space',
    FORMAT(@date, 'M') AS 'No Space',
    FORMAT(@date, 'y ') AS 'Space',
    FORMAT(@date, 'y') AS 'No Space';

परिणाम:

+---------+------------+---------+------------+---------+------------+
| Space   | No Space   | Space   | No Space   | Space   | No Space   |
|---------+------------+---------+------------+---------+------------|
| 2       | 6/2/2008   | 6       | June 2     | 8       | June 2008  |
+---------+------------+---------+------------+---------+------------+

अधिक के लिए FORMAT() उदाहरण, SQL सर्वर में दिनांक और समय को प्रारूपित करने का तरीका देखें।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. तालिका में मूल्यों की लगातार घटनाओं की संख्या की गणना करें

  2. SQL सर्वर में SYSUTCDATETIME () बनाम GETUTCDATE ():क्या अंतर है?

  3. SQL सर्वर (T-SQL) में वर्तमान लॉगिन आईडी प्राप्त करें

  4. SQL सर्वर डेटाबेस को Azure SQL डेटाबेस में माइग्रेट करने के तरीके

  5. SQL सर्वर में सशर्त WHERE क्लॉज