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

कैसे to_timestamp () PostgreSQL में काम करता है

PostgreSQL प्रलेखन के अनुसार, to_timestamp() called नामक दो कार्य हैं :

  • एक यूनिक्स युग को टाइमस्टैम्प में परिवर्तित करता है। यूनिक्स युग 1970-01-01 00:00:00+00 के बाद से सेकंड की संख्या है।
  • दूसरा स्ट्रिंग को टाइमस्टैम्प में बदल देता है।

अधिक विशेष रूप से, प्रत्येक फ़ंक्शन मान को समय क्षेत्र के साथ टाइमस्टैम्प . में परिवर्तित करता है मूल्य।

हालांकि पोस्टग्रेज दस्तावेज उन्हें दो अलग-अलग to_timestamp() . के रूप में प्रस्तुत करता है फ़ंक्शन, मैं उन्हें इस तरह प्रस्तुत करता हूं जैसे कि वे एक फ़ंक्शन हैं जो या तो एक तर्क को स्वीकार करता है, या दो।

सिंटैक्स

आप उपयोग कर सकते हैं to_timestamp() निम्नलिखित तरीकों से:

to_timestamp(double precision)
to_timestamp(text, text)

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

दूसरे सिंटैक्स का उपयोग करते हुए, पहला तर्क दिनांक है, और दूसरा तर्क प्रारूप स्ट्रिंग है।

यूनिक्स युग को रूपांतरित करें

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

SELECT to_timestamp(1658792421);

परिणाम:

2022-07-26 09:40:21+10

मेरे मामले में टाइमज़ोन ऑफ़सेट +10 है और यही वह है जो लौटाया गया है।

आंशिक सेकंड

यहाँ आंशिक सेकंड के साथ एक उदाहरण दिया गया है।

SELECT to_timestamp(1658792421.123456);

परिणाम:

2022-07-26 09:40:21.123456+10

फ़ॉर्मेटिंग

दिनांक मान को प्रारूपित करने के लिए दूसरे सिंटैक्स का उपयोग करने का एक उदाहरण यहां दिया गया है।

SELECT to_timestamp('21 Oct 2022', 'DD Mon YYYY');

परिणाम:

2022-10-21 00:00:00+10

दूसरा तर्क यह इंगित करने के लिए प्रदान किया जाता है कि पहला तर्क कैसे स्वरूपित किया गया है।

इस बिंदु को और स्पष्ट करने के लिए यहां एक और प्रारूप दिया गया है।

SELECT to_timestamp('21/10/2022', 'DD/MM/YYYY');

परिणाम:

2022-10-21 00:00:00+10

यदि दूसरे तर्क का प्रारूप पहले तर्क के प्रारूप से मेल नहीं खाता है, तो आप एक त्रुटि के साथ समाप्त हो सकते हैं।

उदाहरण के लिए:

SELECT to_timestamp('21 October 2022', 'DD Mon YYYY');

परिणाम:

ERROR: invalid value "ober" for "YYYY"
DETAIL: Value must be an integer.

प्रारूप स्ट्रिंग (दूसरा तर्क) वैकल्पिक संशोधक के साथ कोई भी टेम्पलेट पैटर्न हो सकता है।

यहां टेम्प्लेट पैटर्न और संशोधक की पूरी सूची है जिसका उपयोग आप इस फ़ंक्शन के साथ कर सकते हैं।

वापसी का प्रकार

जैसा कि बताया गया है, वापसी का प्रकार समय क्षेत्र के साथ टाइमस्टैम्प . है . हम इसे pg_typeof() . से सत्यापित कर सकते हैं समारोह।

SELECT pg_typeof(to_timestamp(1658792421.123456));

परिणाम:

timestamp with time zone

तारीख के हिस्सों को निकालना

आप टाइमस्टैम्प मान से दिनांक भागों को निकालने के लिए विभिन्न विधियों का उपयोग कर सकते हैं।

उदाहरण के लिए, आप extract() . का उपयोग कर सकते हैं समारोह।

SELECT extract('month' from to_timestamp(1658792421));

परिणाम:

7

और आप to_char() . का उपयोग कर सकते हैं फ़ंक्शन यदि आपको कुछ ऐसा करने की आवश्यकता है, तो महीने की संख्या के बजाय महीने का नाम प्रदर्शित करें।

SELECT to_char(to_timestamp(1658792421), 'Month');

परिणाम:

July

और यहाँ यह फ़ॉर्मेटिंग सिंटैक्स का उपयोग कर रहा है।

SELECT to_char(to_timestamp('1st Oct 2022', 'FMDDth Mon YYYY'), 'Month');

परिणाम:

October

अगर आपके पास केवल महीने की संख्या है, तो आप महीने की संख्या को महीने के नाम में बदलने के लिए निम्न उदाहरण का उपयोग कर सकते हैं।

SELECT to_char(to_timestamp(3::text, 'MM'), 'Month');

परिणाम:

March

और इसके विपरीत (महीने के नाम को महीने की संख्या में बदलें)।

निम्नलिखित उदाहरण में मैं date_part() . का उपयोग करके महीने की संख्या निकालता हूं extract() . के विकल्प के रूप में ।

SELECT date_part('month', (to_timestamp('Mar 2022', 'Mon')));

परिणाम:

3

  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. PostgreSQL में ::क्या करता है?

  3. क्या PostgreSQL तालिकाओं (टुकड़ों) के पारदर्शी संपीड़न का समर्थन करता है?

  4. पोस्टग्रेज:मानों के योग का चयन करें और फिर इसे फिर से जोड़ दें

  5. PostgreSQL में मॉड () कैसे काम करता है