ट्रांजैक्ट-एसक्यूएल में कार्यों का एक समूह शामिल है जो हमें तिथियों और समय के साथ काम करने में मदद करता है। तिथियों के साथ काम करते समय अधिक सामान्य कार्यों में से एक तिथि के विभिन्न भागों को निकालना है। उदाहरण के लिए, कभी-कभी हम केवल वर्ष या महीना चाहते हैं। दूसरी बार हम सप्ताह का दिन चाहते हैं। किसी भी तरह, 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 सर्वर में दिनांक और समय को प्रारूपित करने का तरीका देखें।