PostgreSQL हमें तारीख से दिन, महीने और साल प्राप्त करने के कई तरीके प्रदान करता है।
तीन कार्य जो तुरंत दिमाग में आते हैं वे हैं; DATE_PART()
, EXTRACT()
, और TO_CHAR()
।
EXTRACT()
EXTRACT()
फ़ंक्शन उप-क्षेत्रों जैसे वर्ष, माह, घंटा, या मिनट, दिनांक/समय मान से भाग प्राप्त करता है।
उदाहरण:
SELECT EXTRACT(YEAR FROM date '2035-10-30');
परिणाम:
2035
हम इस फ़ंक्शन के लिए तीन अलग-अलग कॉल करके अलग-अलग क्षेत्रों में अलग-अलग दिनांक भागों को वापस कर सकते हैं:
SELECT
EXTRACT(DAY FROM date '2035-10-30') AS "Day",
EXTRACT(DOW FROM date '2035-10-30') AS "DOW",
EXTRACT(DOY FROM date '2035-10-30') AS "DOY",
EXTRACT(MONTH FROM date '2035-10-30') AS "Month",
EXTRACT(YEAR FROM date '2035-10-30') AS "Year";
परिणाम:
Day | DOW | DOY | Month | Year -----+-----+-----+-------+------ 30 | 2 | 303 | 10 | 2035
यहां, मैंने तारीख से महीने का दिन, सप्ताह का दिन, वर्ष का दिन, महीना और वर्ष लौटा दिया।
अधिक उदाहरणों के लिए PostgreSQL में कैसे निकालें () काम करता है, और इस फ़ंक्शन द्वारा वापस किए जा सकने वाले फ़ील्ड नामों की एक सूची देखें।
DATE_PART()
DATE_PART()
फ़ंक्शन EXTRACT()
. के बराबर है , लेकिन थोड़े अलग सिंटैक्स के साथ।
SELECT
DATE_PART('DAY', date '2035-10-30') AS "Day",
DATE_PART('DOW', date '2035-10-30') AS "DOW",
DATE_PART('DOY', date '2035-10-30') AS "DOY",
DATE_PART('MONTH', date '2035-10-30') AS "Month",
DATE_PART('YEAR', date '2035-10-30') AS "Year";
परिणाम:
Day | DOW | DOY | Month | Year -----+-----+-----+-------+------ 30 | 2 | 303 | 10 | 2035
इस फ़ंक्शन के लिए आवश्यक है कि पहला तर्क एक स्ट्रिंग के रूप में प्रदान किया जाए, और अल्पविराम दो तर्कों को FROM
के बजाय अलग करता है कीवर्ड।
TO_CHAR()
TO_CHAR()
फ़ंक्शन अधिक लचीला है, जिसमें इसका उपयोग विभिन्न प्रकार के आउटपुट प्रदान करने के लिए किया जा सकता है। उदाहरण के लिए, हम इस फ़ंक्शन का उपयोग दिन, महीने और वर्ष सभी को एक फ़ील्ड में वापस करने के लिए कर सकते हैं:
SELECT TO_CHAR(date '2045-12-02', 'Day, DDth Month YYYY');
परिणाम:
Saturday , 02nd December 2045
हम fm
. का उपयोग कर सकते हैं किसी भी पैडिंग को दबाने के लिए टेम्पलेट संशोधक जिसे लागू किया जा सकता है:
SELECT TO_CHAR(date '2165-04-01', 'fmDay, fmDDth fmMonth YYYY');
परिणाम:
Monday, 1st April 2165
यह भी ध्यान दें कि th
टेम्पलेट संशोधक यह जानने के लिए पर्याप्त स्मार्ट है कि st
, nd
, rd
, या th
जोड़ा जाना चाहिए।
यहां एक उदाहरण दिया गया है जो TO_CHAR()
पर विभिन्न कॉल का उपयोग करता है अलग-अलग क्षेत्रों में विभिन्न दिनांक भागों को आउटपुट करने के लिए:
SELECT
TO_CHAR(date '2165-04-01', 'fmDay') AS "Day",
TO_CHAR(date '2165-04-01', 'fmDD') AS "DD",
TO_CHAR(date '2165-04-01', 'fmMonth') AS "Month",
TO_CHAR(date '2165-04-01', 'YYYY') AS "YYYY";
परिणाम:
Day | DD | Month | YYYY --------+----+-------+------ Monday | 1 | April | 2165